默认异常
1.默认情况下,Spring Boot:提供/error处理所有错误的映射,也就是说当出现错误时,SpringBoot底层会请求转发到/error这个映射
2.比如使用浏览器访问不存在接口(路径映射),响应一个"whitelabe"错误视图,以HTML格式呈现的给用户
3.SpringBoot底层默认由DefaultErrorViewResolver处理错误
全局异常
@ControllerAdvice(注解类)+@ExceptionHandler(注解方法)处理全局异常
底层是ExceptionHandlerExceptionResolver支持的
全局异常优先级>默认异常
全局异常-应用实例
需求:演示全局异常使用,当发生ArithmeticException、NullPointerException时,不使用默认异常机制匹配的xxx.html,而是通过全局异常机制显示指定的错误页面。是使用java的异常机制来匹配错误页面。而局部异常是使用错误编码来匹配的。
自定义异常
1.如果Spring Boot提供的异常不能满足开发需求,程序员也可以自定义异常,
2.@ResponseStatus(value=HttpStatus.enum自定义异常)注解类
3.底层是ResponseStatusExceptionResolver,底层调用response.sendError(statusCode,resolvedReason);
4.当抛出自定义异常后,仍然会根据状态码,去匹配使用xxx.html显示
自定义异常
@ResponseStatus(value=HttpStatus.FORBIDDEN)
public class AccessException extends RuntimeException(){
public AccessException(String message){
super(message);
}
}
注意事项和细节
如果把自定义异常类型,添加到全局异常处理器,那么仍然走全局异常处理机制,即java的异常类型处理
添加到ExceptionHandler({NullPointerException.class,AccessException.class})
2、看显示效果,并Debug,也可以自己设置异常信息。