• zbb20180921 springboot 全局异常处理 404 500


    springboot 全局异常处理

    研究了半天springboot的全局异常处理,虽然还是需要再多整理一下,但是对于常见的404和500足以可以区分开,能够根据这两个异常分别处理

    首先配置视图解析路径

    spring.mvc.view.prefix=/WEB-INF/
    spring.mvc.view.suffix=.jsp

    针对500错误

    创建单独的配置类,放在启动类同包或子包下

    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @ControllerAdvice
    public class GlobalDefaultExceptionHandler {
        
    
        //可以返回自定义的错误页面
        @ExceptionHandler(Exception.class)  //这里根据报的异常可以写不同的方法,反别捕捉
        private ModelAndView returnErrorPage(Exception e) {
            ModelAndView mv = new ModelAndView();
            mv.addObject("exception",e.getClass().getName());
            mv.setViewName("/error");
            return mv;
        }
    }

    针对404错误

    同样创建单独的配置类,放在启动类同包或子包下

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.boot.autoconfigure.web.ErrorController;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    @RequestMapping("error")
    public class MyErrorController implements ErrorController {
        
        Logger logger = LoggerFactory.getLogger(MyErrorController.class);
        
        @Override
        public String getErrorPath() {
            logger.info("********************进入自定义异常********************");
            return "err";   //这个返回的视图名称不要用error,springboot默认的视图名是error,如果一定要用error,需要将error放在指定的路径下,这个日后再整理。
        }
        
        @RequestMapping
        public String error() {
            return getErrorPath();
        }
    
    }
  • 相关阅读:
    Android Context 上下文 你必须知道的一切
    Delphi:对TNotifyEvent的理解
    vagrant启动报错The following SSH command responded with a no
    virtualbox命令行共享CentOS目录
    一些Linux命令
    PHP实现单例模式
    maven+springMVC+mybatis+easyUI管理用户增删改查
    Project Euler:Problem 77 Prime summations
    spring 获取对象方式
    linux命令之man和info
  • 原文地址:https://www.cnblogs.com/super-admin/p/9685936.html
Copyright © 2020-2023  润新知