分享

SpringMVC处理异常的三种方式

 擎天猪mpnlajkd 2016-09-22
1 基于配置文件的处理 spring-mvc.xml中配置
   <!-- 配置文件的异常处理机制 -->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionAttribute" value="ex"></property>
<property name="exceptionMappings">
<props>
<prop key="java.lang.Exception">error</prop>
</props>
</property>
</bean>

通过实现HandlerExceptionResolver接口自定义异常处理类  
package com.hzlssd.company.controller;

import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
/**
 * 通过实现HandlerExceptionResolver接口自定义异常处理类
 * @author QY
 */
public class MyMappingExceptionResolver implements HandlerExceptionResolver{
@Override
public ModelAndView resolveException(HttpServletRequest req,
HttpServletResponse res, Object obj, Exception ex) {
Map<String,Object> model = new HashMap<String,Object>();
model.put("ex",ex);
return new ModelAndView("error",model);
}
}
<!-- 注解开启自定义异常处理类 -->
<bean id="exceptionHandler" class="com.hzlssd.company.controller.MyMappingExceptionResolver" />

通过注解的方式自定义异常处理方法,让可能抛出异常的类继承该类,从而处理异常
package com.hzlssd.company.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.ExceptionHandler;
/**
 * 通过注解的方式自定义异常处理方法,让可能抛出异常的类继承该类,从而处理异常
 * @author QY
 */
public class BaseExceptionAnn{
@ExceptionHandler
public String execute(HttpServletRequest request,Exception ex){
request.setAttribute("ex", ex);
return "error";
}
}

抛出异常类要继承自定义的类
@Controller
@RequestMapping("/login")
public class HelloController extends BaseExceptionAnn{

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多