zoukankan      html  css  js  c++  java
  • springboot 全局异常处理

    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();
    	}
    
    }
  • 相关阅读:
    Linux下OpenSSL自签ssl证书
    戌蛤怒触铁铁树
    Python自动化办公-自动化操作Excell-openpyxl
    Python正则表达式
    Django中F查询
    如何知道自家的宽带是多少兆?
    ‘Diango中明明模版的名称写的是对的,但是访问url的时候发现没调用模版’解决方案
    Django中的聚合函数
    Django中的跨关系查询
    【RabbitMQ】零、Windows64位安装
  • 原文地址:https://www.cnblogs.com/xujie09/p/8464279.html
Copyright © 2011-2022 走看看