背景
Springboot 默认把异常的处理集中到一个ModelAndView中了,但项目的实际过程中,这样做,并不能满足我们的要求。具体的自定义异常的处理,参看以下
前提
具体实现
如果仔细看完Spring boot的异常处理详解,并且研究过源码后,我觉得具体的实现可以不用看了。。。
重写定义错误页面的url,默认只有一个/error
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer(){
return new EmbeddedServletContainerCustomizer(){
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/error/404"));
container.addErrorPages(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error/500"));
container.addErrorPages(new ErrorPage(java.lang.Throwable.class,"/error/500"));
}
};
}
重写通过实现ErrorController,重写BasicErrorController的功能实现
**
* 重写BasicErrorController,主要负责系统的异常页面的处理以及错误信息的显示
* @see org.springframework.boot.autoconfigure.web.BasicErrorController
* @see org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration
*
* @author Jonathan
* @version 2016/5/31 11</

本文介绍了在Springboot项目中如何自定义异常处理,以满足实际需求。首先,通过定义containerCustomizer来重写异常处理对应的视图,如404和500状态页。其次,继承并重写BasicErrorController,利用ErrorAttributes获取异常信息,以便在页面展示。通过这两步,实现了更灵活的异常处理策略,可以根据Accept头输出不同格式的错误响应。
最低0.47元/天 解锁文章
1269





