SpringMVC的异常管理
1.异常处理层次
界面>WEB>Spring MVC控制器>控制器>业务层>DAO
- WEB层可以通过配置web.xml 处理异常
- Spring 中通过异常处理器处理异常。
- 控制器中可以使用异常处理方法处理异常
- 控制器代码中可以使用 try catch 处理异常
>异常处理原则底层应该处理的异常,就处理处理不了的异常一定抛出到上层
>注意:web.xml 和 Spring 中配置的异常处理不同
2.使用Spring 配置文件处理异常:
<!-- 配置异常处理器组件 -->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!-- key 是异常类名,value是
出现异常显示的页面名 -->
<prop key="java.lang.Exception">
error
</prop>
<!-- 扩展练习:处理空指针异常和数组下标
越界异常 -->
</props>
</property>
</bean>
3.使用异常处理方法处理异常
@ExceptionHandler
public String processError(
HttpServletRequest req,
Exception e) throws Exception{
String method = (String)
req.getAttribute("method");
//如果是数组越界异常就处理,其他情况抛出
if(e instanceof ArrayIndexOutOfBoundsException){
System.out.println(method);
return "error2";
}
throw e;//抛异常到SpringMVC
}
> 注意:方法必须有参数 HttpServletRequest req,Exception e 否则不能执行