博客
关于我
SpringMVC处理异常
阅读量:556 次
发布时间:2019-03-09

本文共 1254 字,大约阅读时间需要 4 分钟。

Spring 提供了多种方式将异常转换为响应,这些机制可以帮助开发者更好地管理应用程序的错误处理流程。以下是一些关键信息:

  • 特定的Spring异常将会自动映射为指定的HTTP状态码:Spring内部有很多特定的异常类,这些异常会被自动映射到相应的HTTP状态码中。例如,当DispatcherServlet无法找到处理请求的方法时,会抛出NoSuchRequestHandlingMethodException异常,最终生成404状态码(Not Found)。

  • 使用@ResponseStatus注解将异常映射为特定状态码:通过在异常类上使用@ResponseStatus注解,可以指定要映射到的具体HTTP状态码。例如,SpittleNotFound-Exception异常可以被映射到404状态码。

  • 在控制器方法上使用@ExceptionHandler注解处理异常:@ExceptionHandler注解可以用来在控制器方法中定义处理特定异常的逻辑。这样的方法可以接收任何异常类型,并根据需要返回处理结果。

  • 使用@controllerAdvice来集中管理异常处理:通过定义一个带有@controllerAdvice注解的类,可以集中管理应用程序中所有控制器方法抛出的异常。这种方式有助于减少重复代码,并统一处理异常。

  • 以下是如何在Spring应用中配置这些机制的具体步骤:

    • 创建一个新的异常处理类,例如''
      @ControllerAdvicepublic class ZzfExceptionHandler {    public static final String IMOOC_ERROR_VIEW = "error";    @ExceptionHandler(value = Exception.class)    public ModelAndView errorHandler(HttpServletRequest request, HttpServletResponse response, Exception e) throws Exception {        e.printStackTrace();        ModelAndView mav = new ModelAndView();        mav.addObject("exception", e);        mav.addObject("url", request.getRequestURL());        mav.setViewName(IMOOC_ERROR_VIEW);        return mav;    }}

      这个类会处理所有控制器抛出的异常,将其转换为视图响应,并跳转到templates/error.html

    这样,不管应用程序中哪个控制器方法抛出异常,都可以通过这个统一的异常处理逻辑来处理。这个方法确保了错误信息的一致性和可追踪性,同时也使代码更加简洁和易于维护。

    转载地址:http://ommsz.baihongyu.com/

    你可能感兴趣的文章
    Nacos安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    Nacos实战攻略:从入门到精通,全面掌握服务治理与配置管理!(上)
    查看>>
    Nacos实战攻略:从入门到精通,全面掌握服务治理与配置管理!(下)
    查看>>
    Nacos心跳机制实现快速上下线
    查看>>
    nacos报错com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
    查看>>
    nacos服务提供和发现及客户端负载均衡配置
    查看>>
    Nacos服务注册与发现demo
    查看>>
    Nacos服务注册与发现的2种实现方法!
    查看>>
    nacos服务注册和发现原理简单实现案例
    查看>>
    Nacos服务注册总流程(源码分析)
    查看>>
    nacos服务注册流程
    查看>>
    Nacos服务部署安装
    查看>>
    nacos本地可以,上服务器报错
    查看>>
    Nacos注册Dubbo(2.7.x)以及namespace配置
    查看>>
    Nacos注册中心有几种调用方式?
    查看>>
    nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 如何注册服务 发送请求,nacos clinet客户端心跳 nacos 注册中心客户端如何发送的心跳 (三)
    查看>>
    Nacos简介、下载与配置持久化到Mysql
    查看>>