乐趣区

关于java:SpringBoot全局异常处理机制

什么是全局异样解决

当我看到共事的代码,controller 层,service 层,一箩筐 try-catch,让我对共事的代码霎时没了 ” 可读欲 ”,大量的 try-catch 代码不只是观赏性的陨落,还是咱们的程序产生了大量的冗余代码,这个时候,” 全局异样解决 ” 就诞生了。

全局性异样解决

全局性异样解决,是我的项目中所有的异样,全副都会跑到该全局异样类中去解决,并对立返回。
首先,要解决全局异样,自定义的异样是必不可少的,因为,咱们须要自定义异样去解决咱们的业务。


此时咱们的自定义异样继承了最大的程序异样 –>Exception, 当咱们解决业务逻辑时,能够填写具体的形容信息,给前端返回。上面时接管自定义异样的全局异样解决类。

@RestController 注解自身应用 @ControllerAdvicer 和 @ResponseBody 注解。
应用了 @RestControllerAdvice 注解的类会被看作一个 ControllerAdvicer,
而该类中所有应用 @ExceptionHandler 注解的办法都默认应用了的 @ResponseBody 注解。

以下是 RestControllerAdvice 注解的源代码

也就是说,该注解下有 @ControllerAdvice 注解和 @ResponseBody 注解,属于组合注解,也就是说,该注解下的类,是全局异样解决类,返回的参数是以 Json 的模式返回的。

注解 @ExceptionHandler:表明咱们该办法拦挡的异样类型,如果拦挡 Exception 异样,则为 @ExceptionHandler(Exception.class)

模块异样解决

当咱们的项目组中,并不是所有人都想用这个全局异样解决,来拦挡咱们我的项目中所有的异样的时候,那咱们能够用接口的模式,谁用,则谁的管制层去继承。

这样只有你模块的管制层类去实现这个接口,就能够解决你模块的异样啦。

注解异样解决

略。。。

退出移动版