Spring MVC异常处理

Spring MVC处理异常有3种方式: 
(1)使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver; 
(2)实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器; 
(3)使用@ExceptionHandler注解实现异常处理; 
web.xml中配置
<error-page>  
		<exception-type>java.lang.Throwable</exception-type>  
		<location>/500.jsp</location>  
	</error-page>  
	<error-page>  
		<error-code>500</error-code>  
		<location>/500.jsp</location>  
	</error-page>  
	<error-page>  
		<error-code>404</error-code>  
		<location>/404.jsp</location>  
	</error-page> 

1. 使用SimpleMappingExceptionResolver实现异常处理 

1.1、在Spring的配置文件applicationContext.xml中增加以下内容:
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">  
			<!-- 定义默认的异常处理页面,当该异常类型的注册时使用 -->  
			<property name="defaultErrorView" value="error"></property>  
			<!-- 定义异常处理页面用来获取异常信息的变量名,默认名为exception -->  
			<property name="exceptionAttribute" value="ex"></property>  
			<!-- 定义需要特殊处理的异常,用类名或完全路径名作为key,异常也页名作为值 -->  
			<property name="exceptionMappings">  
				<props>  
					<prop key="cn.basttg.core.exception.BusinessException">error-business</prop>  
					<prop key="cn.basttg.core.exception.ParameterException">error-parameter</prop>  
		  
					<!-- 这里还可以继续扩展对不同异常类型的处理 -->  
				</props>  
			</property>  
		</bean> 

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

2.1. 增加HandlerExceptionResolver 接口的实现类MyExceptionHandler,代码如下
public class MyExceptionHandler implements HandlerExceptionResolver {  
				public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,  
						Exception ex) {  
					Map<String, Object> model = new HashMap<String, Object>();  
					model.put("ex", ex);    
					// 根据不同错误转向不同页面  
					if(ex instanceof BusinessException) {  
						return new ModelAndView("error-business", model);  
					}else if(ex instanceof ParameterException) {  
						return new ModelAndView("error-parameter", model);  
					} else {  
						return new ModelAndView("error", model);  
					}  
				}  
			}
2.2 在Spring的配置文件applicationContext.xml中增加以下内容:
<bean id="exceptionHandler" class="cn.basttg.core.exception.MyExceptionHandler"/>

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

在类中使用@ExceptionHandler注解声明异常处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值