- 转自:https://blog.youkuaiyun.com/qq_35489575/article/details/79052513
- import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
- import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
- import org.springframework.boot.web.servlet.ErrorPage;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.http.HttpStatus;
- /**
- * 错误页面的配置
- */
- @Configuration
- public class ErrorPagesConfig {
- @Bean //此注解一定记住要加上,别忘记
- public EmbeddedServletContainerCustomizer containerCustomizer(){
- return new EmbeddedServletContainerCustomizer() {
- @Override
- public void customize(ConfigurableEmbeddedServletContainer container) {
- //状态码 错误页面的存储路径
- ErrorPage errorPage400 = new ErrorPage(HttpStatus.BAD_REQUEST, "/error-400.html");
- ErrorPage errorPage404 = new ErrorPage(HttpStatus.NOT_FOUND, "/error-404.html");
- ErrorPage errorPage500 = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/error-500.html");
- //...可自己一个一个的补全
- container.addErrorPages(errorPage400,errorPage404,errorPage500);
- }
- };
- }
- }
如果你有自己设计一个错误编码和错误信息的Exception,定义为MyException extends RuntimeException,
哪里会出错throw MyException
然后配置一个Controller
使用@ControllerAdvice做统一异常处理:
@ControllerAdvice public class MyExceptionHandler { @ExceptionHandler(value = MyException.class) public String MyExceptionHandler(){ return "error"; } }
如果要返回一些错误码和错误信息,你就加个Model model ,错误页面接收一下就行了。