什么是全局异样解决

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

全局性异样解决

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


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

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

以下是RestControllerAdvice注解的源代码

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

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

模块异样解决

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

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

注解异样解决

略。。。