1.Spring Boot描述
错误总是会发生的,那些在生产环境里最健壮的应用程序偶尔也会遇到麻烦。虽然减小用户遇到错误的概率很重要,但让应用程序展现一个好的错误页面也同样重要。Spring Boot自动配置的默认错误处理器会查找名为error的视图,如果找不到就用默认的白标错误视图,如下图所示。因此,最简单的方法就是创建一个自定义视图,让解析出的视图名为error。
方法1:实现ErrorController接口
/** * 方法1:Spring Boot 将所有的错误默认映射到/error, 实现ErrorController * @author cjj * */ @Controller @RequestMapping("/error") public class BaseErrorPage implements ErrorController { Logger logger = LoggerFactory.getLogger(BaseErrorPage.class); @Override public String getErrorPath() { logger.info("进入自定义错误页面"); return "error/error"; } @RequestMapping public String error() { return getErrorPath(); } }
方法2:添加自定义的错误页面
在resources/public/error添加404.html页面
在templates/error/下定义5xx.ftl
/** * 方法2:添加自定义的错误页面 * @return */ @RequestMapping("error") public String error() { throw new RuntimeException("测试异常"); } //注:templates/error/ 这个的优先级比较 resources/public/error/高 [/PHP] 方法3:使用注解@ControllerAdvice @ControllerAdvice public class BizException { private static final Logger logger = LoggerFactory.getLogger(BizException.class); /** * 运行时异常 * @param exception * @return */ @ExceptionHandler({ RuntimeException.class }) @ResponseStatus(HttpStatus.OK) public ModelAndView processException(RuntimeException exception) { logger.info("自定义异常处理-RuntimeException"); ModelAndView m = new ModelAndView(); m.addObject("exception", exception.getMessage()); m.setViewName("error/500"); return m; } /** * Excepiton异常 * @param exception * @return */ @ExceptionHandler({ Exception.class }) @ResponseStatus(HttpStatus.OK) public ModelAndView processException(Exception exception) { logger.info("自定义异常处理-Exception"); ModelAndView m = new ModelAndView(); m.addObject("exception", exception.getMessage()); m.setViewName("error/500"); return m; } }
2.项目结构图
3.显示配置后的效果
© 著作权归作者所有
文章评论(0)