SpringMVC的异常处理

思路

Controller调用service,service调用dao,异常都是向上抛的,最终有DispatcherServlet找异常处理器进行异常的处理。

SpringMVC的异常处理

  1. 自定义异常类

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    /**
    * 自定义异常类
    */
    public class SysException extends Exception{
    //存储异常信息的
    private String message;
    @Override
    public String getMessage() {
    return message;
    }
    public void setMessage(String message) {
    this.message = message;
    }
    public SysException(String message) {
    this.message = message;
    }
    }
  1. 自定义异常处理器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /**
    * 自定义异常处理器
    */
    public class SysExceptionResolver implements HandlerExceptionResolver {
    /**
    * 处理异常逻辑
    */
    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
    // 获取到异常对象
    SysException sysException = null;
    if (e instanceof SysException){
    sysException=(SysException)e;
    }else{
    sysException = new SysException("系统正在维护...");
    }
    //创建ModelAndView对象
    ModelAndView view = new ModelAndView();
    view.addObject("errorMsg", sysException.getMessage());
    view.setViewName("error");
    return view;
    }
    }
  1. 配置异常处理器(跳转到提示页面)

    在springmvc.xml中配置

    1
    2
    <!--配置异常处理器-->
    <bean id="sysExceptionResolver" class="com.ligangit.exception.SysExceptionResolver"></bean>
  2. 控制器代码

    注意抛出异常

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    @RequestMapping(value = "testException")
    public String testException() throws SysException{
    System.out.println("testException方法执行了。。。");
    // try...catch捕获异常
    try {
    //模拟异常
    int a=10/0;
    } catch (Exception e) {
    //打印异常信息
    e.printStackTrace();
    // 抛出自定义异常信息
    throw new SysException("查询所有用户出现错误。。。");
    }
    return "success";
    }

最后更新: 2020年07月30日 10:30

原始链接: http://ligangit.com/2020/07/10/SpringMVC-异常处理/

× 请我吃糖~
打赏二维码