1.@RestControllerAdvice注解
- 通过@ControllerAdvice注解可以将对于控制器的全局配置放在同一个位置。
- 注解了@RestControllerAdvice的类的方法可以使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上。
- @RestControllerAdvice注解将作用在所有注解了@RequestMapping的控制器的方法上。
- @ExceptionHandler:用于指定异常处理方法。当与@RestControllerAdvice配合使用时,用于全局处理控制器里的异常。
- @InitBinder:用来设置WebDataBinder,用于自动绑定前台请求参数到Model中。
- @ModelAttribute:本来作用是绑定键值对到Model中,当与@ControllerAdvice配合使用时,可以让全局的@RequestMapping都能获得在此处设置的键值对
2.@ExceptionHandler注解
- @ExceptionHandler注解我们一般是用来自定义异常的。
- 可以认为它是一个异常拦截器(处理器)。
- 如下:
@ExceptionHandler({RuntimeException.class}) //申明捕获那个异常类
public String RuntimeExceptionDemo(Exception e) {
logger.error(e.getMessage(), e);
return "运行时异常返回";
}@ExceptionHandler({NumberFormatException.class}) //申明捕获那个异常类
public String NumberFormatExceptionDemo(Exception e) {
logger.error(e.getMessage(), e);
return "数字转换异常返回";
}