码迷,mamicode.com
首页 > 编程语言 > 详细

springMVC异常处理

时间:2020-07-14 12:58:12      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:sage   bean   str   response   imp   void   执行   ceo   dao   

注:本篇的异常主要指的是controller、service和dao层中执行方法抛出的异常。

 

 一、为什么要处理异常?

  因为如果我们不处理异常,异常信息就会直接抛出给浏览器,于是浏览器页面就直接显示异常信息,这对用户来说是很不友好的。我们应该在发生错误时返回一个友好的错误提示页面展示给用户。

 

二,异常处理思路

  当dao或者其他层抛出异常时,异常会向上逐层抛出,最后抛出到浏览器。那么我们就可以在异常抛出到前端控制器(DispatcherServlet)的时候,编写异常处理器对异常进行拦截,经过异常处理器处理异常后,跳转到一个友好的错误提示页面并返回给浏览器

技术图片

 

 

 

三、实现步骤

1.编写自定义异常类

public class SysException extends Exception {
    private String message;

    public SysException(String message) {
        this.message = message;
    }

    @Override
    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

 

2.编写异常处理器类

public class SysExceptionResolver implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception ex) {
        SysException e = null;
        if (ex instanceof SysException){
            e = (SysException) ex;
        }else {
            e = new SysException("系统正在维护");
        }

        ModelAndView mv = new ModelAndView();
        mv.addObject("errorMsg",ex.getMessage());
        mv.setViewName("error");
        return mv;
    }
}

 注意:异常处理器类必须实现HandlerExceptionResolver接口,并实现接口中的方法

 

3.配置异常处理器(将异常处理器交给spring容器管理)

方式一:用xml配置的方式

在springmvc.xml配置文件中加如bean标签,将刚刚编写的异常处理器类交给spring容器管理。

<bean id="sysExceptionResolver" class="com.xj.exception.SysExceptionResolver"/>

 

 

方式二:使用注解

在刚刚编写的异常处理器类上加上Component注解

例如:

@Component
public class SysExceptionResolver implements HandlerExceptionResolver {

}

 

这样就配置好了。

 

springMVC异常处理

标签:sage   bean   str   response   imp   void   执行   ceo   dao   

原文地址:https://www.cnblogs.com/bear7/p/13298454.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!