- @ControllerAdvice@RestControllerAdvice , @ExceptionHandler两种注解处理全局异常。
- 利用thymeleaf自定义异常界面
直接返回Jason
正常的Web应用开发时,需要考虑到应用运行发生异常时或出现错误时如何来被处理,例如捕获必要的异常信息,记录日志方便日后排错,友好的用户响应输出等等。
@RestControllerAdvice
public class CustomExtHandler {
@ExceptionHandler(value = Exception.class) //value值为异常的种类
JsonData handlerException(Exception e, HttpServletRequest request){
return JsonData.buildError("服务端出问题了", -2);
}
}
返回ModelAndView页面
<!DOCTYPE html>
<html xmlns:th="http://www/thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
欢迎来到小滴课堂学习 这个是自定义异常界面
<p th:text="${msg}"> </p>
</body>
</html>
@ExceptionHandler(value = Exception.class)
Object handlerException(Exception e, HttpServletRequest request){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("error.html");
System.out.println(e.getMessage());
modelAndView.addObject("msg",e.getMessage());
return modelAndView;
}