码迷,mamicode.com
首页 > 其他好文 > 详细

异常处理

时间:2015-06-15 06:51:26      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

1、Spring MVC处理异常方式有以下三种

  使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver

  实现HandlerExceptionResolver接口自定义异常处理器

  使用@ExceptionHandler注解实现异常处理

2、使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver

  SimpleMappingExceptionResolver使用时,只需要在Spring的XML配置文件中定义下就可以了,定义示例如下

    <!--SimpleMappingExceptionResolver配置-->
    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMapping">
            <props>
                <prop key="java.lang.Exception">error</prop>
                <prop key="com.tarena.TimeoutExcetion">login</prop>
            </props>
        </property>
    </bean>

  异常处理页面获取异常对象名exception,适合全局处理简单异常

3、实现HandlerExceptionResolver接口自定义异常处理器,定义实例如下:

public class MyMappingExceptionResolver implements HandlerExceptionResolver {
    public ModelAndView resolveException(HttpServletRequest req,HttpServletResponse res,
            Object handler,Exception ex){
        Map<String,Object> model=new HashMap<String, Object>();
        model.put("ex",ex);
        //TODO 根据不同异常类型返回不同视图
        return new ModelAndView("error",model);
    }
}

  适合全局处理有“处理过程”的异常

  自定义的异常处理器需要在Spring的XML配置文件中定义下才可应用,定义实例如下

<bean id="exceptionHandler" class="com.tarena.interceptor.MyMappingExceptionResolver"/>

4、@ExceptionHandler注解实现异常处理,使用方法如下

  首先编写一个BaseController类,定义如下

public class BaseController {
    @ExceptionHandler
    public String execute(HttpServletRequest req,Exception ex){
        req.setAttribute("ex", ex);
        //TODO 可根据异常类型不同返回不同视图名
        return "error";
    }
}

  适合局部处理有“处理过程”的异常

  然后其他的Controller继承BaseController类即可

5、对于框架内部异常或代码无法捕获的异常,可以在web.xml中通过<error-page>定义,目前绝大多数服务器都支持此配置。配置示例如下

    <error-page>
        <exception-type>java.lang.Throwable</exception-type>
        <location>/WEB-INF/views/error/500.jsp</location>
    </error-page>
    <error-page>
        <exception-type>404</exception-type>
        <location>/WEB-INF/views/error/400.jsp</location>
    </error-page>

 

异常处理

标签:

原文地址:http://www.cnblogs.com/Crow00/p/4576145.html

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