共计 796 个字符,预计需要花费 2 分钟才能阅读完成。
什么是全局异样解决
当我看到共事的代码,controller 层,service 层,一箩筐 try-catch,让我对共事的代码霎时没了 ” 可读欲 ”,大量的 try-catch 代码不只是观赏性的陨落,还是咱们的程序产生了大量的冗余代码,这个时候,” 全局异样解决 ” 就诞生了。
全局性异样解决
全局性异样解决,是我的项目中所有的异样,全副都会跑到该全局异样类中去解决,并对立返回。
首先,要解决全局异样,自定义的异样是必不可少的,因为,咱们须要自定义异样去解决咱们的业务。
此时咱们的自定义异样继承了最大的程序异样 –>Exception, 当咱们解决业务逻辑时,能够填写具体的形容信息,给前端返回。上面时接管自定义异样的全局异样解决类。
@RestController 注解自身应用 @ControllerAdvicer 和 @ResponseBody 注解。
应用了 @RestControllerAdvice 注解的类会被看作一个 ControllerAdvicer,
而该类中所有应用 @ExceptionHandler 注解的办法都默认应用了的 @ResponseBody 注解。
以下是 RestControllerAdvice 注解的源代码
也就是说,该注解下有 @ControllerAdvice 注解和 @ResponseBody 注解,属于组合注解,也就是说,该注解下的类,是全局异样解决类,返回的参数是以 Json 的模式返回的。
注解 @ExceptionHandler:表明咱们该办法拦挡的异样类型,如果拦挡 Exception 异样,则为 @ExceptionHandler(Exception.class)
模块异样解决
当咱们的项目组中,并不是所有人都想用这个全局异样解决,来拦挡咱们我的项目中所有的异样的时候,那咱们能够用接口的模式,谁用,则谁的管制层去继承。
这样只有你模块的管制层类去实现这个接口,就能够解决你模块的异样啦。
注解异样解决
略。。。