目录
1.2.2、@ControllerAdvice+@ExceptionHandler处理全局异常;
1.2.4、自定义HandlerExceptionResolver(异常解析器)处理异常
2.1.3、DefaultErrorViewResolver
1、错误处理
1.1、默认规则
1)默认情况下,Spring Boot提供/error
处理所有错误的映射
2)不同客户端的返回页面不同:
- 对于机器客户端,将生成JSON响应,其中包含错误,HTTP状态和异常消息的详细信息。
-
对于浏览器客户端,响应一个“ whitelabel”错误视图,以HTML格式呈现相同的数据
1.2、自定义错误规则
1.2.1、自定义错误页
使用方法:
在templates/error中添加4xx、5xx页面,会被自动解析
error/404.html error/5xx.html;有精确的错误状态码页面就匹配精确,没有就找 4xx.html;如果都没有就触发白页
1.2.2、@ControllerAdvice+@ExceptionHandler处理全局异常;
使用方法:
1、在异常类标注@ControllerAdvice注解,在方法上标注@ExceptionHandler注解。
2、@ExceptionHandler注解含有参数,用于表示可以处理的异常。
代码中为数学运算异常和空指针异常。
3、此异常不需要调用,在发生自定义异常时,由框架自动返回异常
异常代码:
/**
* 处理整个Web的异常
*/
@Slf4j
@ControllerAdvice
public class GlobalExceptionHandler {
//异常处理器,用于处理数学运算异常和空指针异常
@ExceptionHandler({ArithmeticException.class, NullPointerException.class})
public String handlerArithException(Exception e) {
log.error("异常是:{}", e);
return "login";
}
}
原理:底层是 ExceptionHandlerExceptionResolver 支持的
1.2.3、@ResponseStatus+自定义异常
使用方法:
@ResponseStatus(value= HttpSta