基于@ControllerAdvice注解的SpringBoot项目全局异常处理

异常在每个项目或者产品里都是或多或少存在的,那么异常处理就变得尤为重要,像try-catch就是用来处理异常,但如果每个方法都判断处理各类异常,那就头重脚轻了。因而springboot就引入了全局异常处理,注解@ControllerAdvice就是来干这个事的。

基于@ControllerAdvice注解的SpringBoot项目全局异常处理

这里写了一个controller,如果去请求的肯定是会报错的,页面展示是这个效果。

基于@ControllerAdvice注解的SpringBoot项目全局异常处理

接下来就用@ControllerAdvice来定义全局异常来处理。定义一个异常辅助类,把@ControllerAdvice加到类上,注解@ExceptionHandler添加到异常处理方法上。(value = Exception.class) value 标识了要拦截的类型,Exception.class包含所有了,也可以捕获具体的异常类。

基于@ControllerAdvice注解的SpringBoot项目全局异常处理

这里使用ModelAndView的把数据返回到页面,ModelAndView的viewName属性值就是页面位置,这里的响应页面是templates 目录ftl下的error.ftl。

这时候重新在请求上面的地址,展示的就是如下的页面。

基于@ControllerAdvice注解的SpringBoot项目全局异常处理

我们也可以给异常配上一张有意思的图片,可以在ModelAndView里加以配置,异常页面就不会很单调了。


分享到:


相關文章: