将业务执行过程当中会产生的各类异常,对其进行统一处理是全部web项目的通用需求,spring 做为最流行的web框架,天然是提供了解决方案。web
在Spring 3.2中,新增了@ControllerAdvice、@RestControllerAdvice 注解来加强咱们 controller 层的。spring
在标注了 @ControllerAdvice、@RestControllerAdvice 注解的类中,配合使用如下注解能够实现不一样的功能框架
对于全局异常处理,具体来讲就是,经过建立 @ControllerAdvice 类,并自定义一个 @ExceptionHandler 方法,来统一处理。.net
这里提供一种常见的设计,供你们参考。设计
主要分为如下几个部分3d
每个业务状态都对于一个状态码 cdn
每一种异常都对于一种ApplicationEnum blog
自定义业务结果类,来统一全部 controller 层的返回值get
为了方便使用,再建立一个 SuccessResult 和一个 FailResultit
若是一个异常能匹配多个 @ExceptionHandler 时,选择匹配深度最小的Exception(即最匹配的Exception)