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 !!!";
}
}
当抛出异常时,异常处理器会执行,并将处理结果返回给页面。