springboot 全局异常捕获
Posted 明天继续飞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot 全局异常捕获相关的知识,希望对你有一定的参考价值。
package com.example.demo.Config;
import org.springframework.ui.Model;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
- Create with Intellij idea
- User:Mingtian
- Date:2018/8/20
- Time:15:49
- 全局异常信息
*/
@ControllerAdvice //@ControllerAdvice 作用:增强型控制器,对于控制器的全局配置放在同一个位置
public class ErrorException
/**
- 应用到所有@RequestMapping注解方法,在其执行之前初始化数据绑定器
- @param binder
*/
@InitBinderpublic void initBinder(WebDataBinder binder)
/** - 把值绑定到Model中,使全局@RequestMapping可以获取到该值
- @param model
*/
@ModelAttributepublic void addAttributes(Model model,HttpServletRequest request)
model.addAttribute(“user”, request.getRemoteUser());//登陆用户
-
//@ExceptionHandler(异常类)这个注解则表示Controller中任何一个方法发生异常,则会被注解了@ExceptionHandler的方法拦截到。
-
// 对应的异常类执行对应的方法,如果都没有匹配到异常类,则采用近亲匹配的方式。
-
@ExceptionHandler(value = Exception.class)
-
public Object errorHandler(HttpServletRequest request,
-
HttpServletResponse response,
-
Exception e)
-
e.printStackTrace();//打印错误信息
-
ModelAndView mv=new ModelAndView();
-
mv.addObject("url",request.getRequestURL());//存放请求地址
-
mv.addObject("exception",e);//存放错误信息
-
mv.setViewName("error");//定义的错误页面
-
return mv;
-
-
//判断是否是ajax请求
-
public static boolean isAjax(HttpServletRequest request)
-
return (request.getHeader("X-Requested-With")!=null
-
&&"XMLRequest".equals(request.getHeader("X-Requested-With").toString()));
-
以上是关于springboot 全局异常捕获的主要内容,如果未能解决你的问题,请参考以下文章