一:知识点:
1.@RestControllerAdvice
- 通过@ControllerAdvice注解可以将对于控制器的全局配置放在同一个位置。
- 注解了@RestControllerAdvice的类的方法可以使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上。
- @RestControllerAdvice注解将作用在所有注解了@RequestMapping的控制器的方法上。
- @ExceptionHandler:用于指定异常处理方法。当与@RestControllerAdvice配合使用时,用于全局处理控制器里的异常。
- @InitBinder:用来设置WebDataBinder,用于自动绑定前台请求参数到Model中。
- @ModelAttribute:本来作用是绑定键值对到Model中,当与@ControllerAdvice配合使用时,可以让全局的@RequestMapping都能获得在此处设置的键值对
二,异常代码展示
package com.example.demo_webmvc.zeng.exception;
import com.example.demo_webmvc.zeng.util.R;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
public class ZengException {
@ExceptionHandler(value = Exception.class)
public R runimeError(Exception e){
System.out.println("运行异常---"+e.getMessage());
System.out.println("全局异常--执行");
return R.error("全局异常--执行");
@ExceptionHandler(value = RuntimeException.class)
public R runime2Error(RuntimeException e){
System.out.println("运行异常---"+e.getMessage());
System.out.println("特定异常--执行");
return R.error("特定异常--执行");
@ExceptionHandler(value = CustomException.class)
public R runime1Error(CustomException e){
System.out.println("运行异常---"+e.getMessage());
System.out.println("自定义异常--执行");
return R.error("自定义异常--执行");
package com.example.demo_webmvc.zeng.exception;
public class CustomException extends Exception {
public CustomException(Exception message) {