美文网首页
Spring MVC异常处理总结

Spring MVC异常处理总结

作者: 昙花未现 | 来源:发表于2018-09-21 18:20 被阅读27次

Spring MVC异常处理有三种方案:

1.使用@ExceptionHandler注解。

public class AccountController {

      @ExceptionHandler

      public void handleException() {}

}

@ExceptionHandler是Controller级别的,不是整个应用程序全局有效。给每个controller添加对应的@ExceptionHandler方法会很繁琐。可以让所有Controller类继承BaseController类,在BaseController类里面添加@ExceptionHandler修饰的方法进行异常处理。

2. 使用HandlerExceptionResolver可以实现一个统一的异常处理机制。Spring提供了以下HandlerExceptionResolver可以使用:

ExceptionHandlerExceptionResolver是@ExceptionHandler机制工作的核心组件。

DefaultHandlerExceptionResolver用于将标准的Spring异常解析为相应的http状态码。

ResponseStatusExceptionResolver主要用于把修饰自定义异常的@ResponseStatus注解映射对应异常到相应的http状态码。

SimpleMappingExceptionResolver和AnnotationMethodHandlerExceptionResolver

自定义 HandlerExceptionResolver可以返回一个ModelAndView对象,可以设置需要的任何内容。

3. 新的@ControllerAdvice提供了一个全局的@ExceptionHandler 异常处理机制。

@ControllerAdvice

public class ExceptionHandler {

                        @ExceptionHandler(Exception.class)

public Result handleException(Exception e)  {

    // todo

  }

}

@ControllerAdvice允许把分散在多个Controller的@ExceptionHandler合并到单个全局错误处理组件中。

相关文章

网友评论

      本文标题:Spring MVC异常处理总结

      本文链接:https://www.haomeiwen.com/subject/xusznftx.html