SpringBoot 中自定义异常与异常处理

1、自定义异常

  • 创建自定义类并继承 RuntimeExpection。
  • super 方法调用父类的中的构造器,传递异常消息。
public class UserNotFintException extends RuntimeException {
    
    
    public UserNotFintException(){
    
    
        super("用户不存在");
    }
}

2、自定义异常处理器

  • 创建自定义类,并使用 @ControllerAdvice 注解 标注这个类是异常处理器。
  • 在类中创建方法,并使用 @ExceptionHandler() 注解 标注这个方法要处理的异常, 注解中加上异常的Class。方法中的 Exception 参数可以取出自定义异常的错误信息。
  • @ResponseBody 注解 表示返回 json 数据。
@ControllerAdvice
public class UserNotFintExceptionHandler {
    
    

    @ExceptionHandler(UserNotFintException.class)
    @ResponseBody
    public String handler(Exception e){
    
    
        return "处理了UserNotFintException异常,异常信息为:"+e.getMessage();
    }
}

3、手动抛出自定义异常(抛出异常时会执行异常处理器)

@Controller
public class IndexController {
    
    

    @ResponseBody
    @RequestMapping(value = "/index",method = RequestMethod.GET)
    public String index(@RequestParam("name") String name){
    
    
        if(name.equals("aa")){
    
    
            throw new UserNotFintException();
        }
        return "hello  word  !!!";
    }
}

当抛出异常时,异常处理器会执行,并将处理结果返回给页面。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Start1234567/article/details/112528303