统一异常处理相关注解
@ControllerAdvice
: 声明在类上用于指定该类为控制增强器类,如果想声明返回的结果为 RESTFull
风格的数据,需要在声明 @ExceptionHandler
注解的方法上同时加上 @ResponseBody
@RestControllerAdvice
: 声明在类上用于指定该类为控制增强器类。并声明返回的结果为 RESTFull
风格的数据,无需在声明 @ExceptionHandler
注解的方法上加 @ResponseBody
@ExceptionHandler
: 声明在方法上用于指定需要统一拦截的异常。例如:@ExceptionHandler(value = Exception.class)
Controller
层的全局异常统一处理
@ControllerAdvice
public class MyControllerAdvice {
@ResponseBody
@ExceptionHandler(value = Exception.class)
public Map errorHandler(Exception ex) {
Map map = new HashMap();
map.put("code", 100);
map.put("msg", ex.getMessage());
return map;
}
@ResponseBody
@ExceptionHandler(value = MyException.class)
public Map myErrorHandler(MyException ex) {
Map map = new HashMap();