美文网首页
SpringBoot Web应用开发-错误处理

SpringBoot Web应用开发-错误处理

作者: 上进的小二狗 | 来源:发表于2018-08-15 18:10 被阅读0次

    一、引言

    开发中存在页面错误的现象,为了增强用户体验,同时及时对错误作出处理,这里有多种实现方式。

    二、错误的处理方式

    方式1 Spring Boot 将所有的错误默认映射到/error, 实现ErrorController
    @Controller
    @RequestMapping(value = "error")
    public class BaseErrorController implements ErrorController {
    private static final Logger logger = LoggerFactory.getLogger(BaseErrorController.class);
    
        @Override
        public String getErrorPath() {
            logger.info("出错啦!进入自定义错误控制器");
            return "error/error";
        }
    
        @RequestMapping
        public String error() {
            return getErrorPath();
        }
    }
    
    方式2 添加自定义的错误页面

    2.1 html静态页面:在resources/public/error/ 下定义
    如添加404页面: resources/public/error/404.html页面,中文注意页面编码

    2.2 模板引擎页面:在templates/error/下定义
    如添加5xx页面: templates/error/5xx.ftl
    注:templates/error/ 这个的优先级比较 resources/public/error/高

    方式3 使用注解@ControllerAdvice详解见此link---> 全局异常捕捉
    /**
         * 统一异常处理
         * 
         * @param exception
         *            exception
         * @return
         */
        @ExceptionHandler({ RuntimeException.class })
        @ResponseStatus(HttpStatus.OK)
        public ModelAndView processException(RuntimeException exception) {
            logger.info("自定义异常处理-RuntimeException");
            ModelAndView m = new ModelAndView();
            m.addObject("roncooException", exception.getMessage());
            m.setViewName("error/500");
            return m;
        }
    
        /**
         * 统一异常处理
         * 
         * @param exception
         *            exception
         * @return
         */
        @ExceptionHandler({ Exception.class })
        @ResponseStatus(HttpStatus.OK)
        public ModelAndView processException(Exception exception) {
            logger.info("自定义异常处理-Exception");
            ModelAndView m = new ModelAndView();
            m.addObject("roncooException", exception.getMessage());
            m.setViewName("error/500");
            return m;
        }
    

    相关文章

      网友评论

          本文标题:SpringBoot Web应用开发-错误处理

          本文链接:https://www.haomeiwen.com/subject/kbbwbftx.html