- @ControllerAdvice 注解定义全局异常处理类
@ControllerAdvice public class GlobalExceptionHandler { }
- @ExceptionHandler 注解声明异常处理方法
方法handleException()会处理所有Controller层抛出的Exception及其子类的异常,Controller层就不需要单独处理异常了。@ControllerAdvice public class GlobalExceptionHandler{ @ExceptionHandler(Exception.class) @ResponseBody public String handleException() { ex.printStackTrace(); return "fail"; } }
但如上代码只能处理 Controller 层的异常,对于未进入Controller的异常,如Interceptor(拦截器)层的异常,Spring 框架层的异常无效,还是会将错误直接返回给用户。对此,只需要在配置文件中添加:spring.mvc.thro
使用@ControllerAdvice + @ExceptionHandler建立全局异常拦截
最新推荐文章于 2023-12-21 22:18:12 发布
@ControllerAdvice结合@ExceptionHandler创建的全局异常处理类可以捕获并处理Controller层的异常,简化代码。但无法处理Interceptor层和Spring框架层的异常。通过配置文件调整,可以将异常处理扩展到更广泛的场景,例如添加特定的异常处理方法参数,以便记录详细的异常信息并提供自定义的响应。
摘要由CSDN通过智能技术生成