基于XML文件方式配置
在springmvc.xml文件中配置
<!-- 配置异常处理器-->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="全类名异常(例如:java.lang.ArithmeticException)">错误页面</prop>
</props>
</property>
</bean>
在Controller中加入测试代码
@RequestMapping("/testException")
public String testException(){
System.out.println(1/0);
return "success";
}
当DispatcherServlet处理请求映射时,如果出现如上异常,则会被异常处理器捕获,跳转到error页面.
当然,也可以将异常信息共享在请求域中
<!-- 配置异常处理器-->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="全类名异常(例如:java.lang.ArithmeticException)">错误页面</prop>
</props>
</property>
<!-- 以name为键,以value为值 -->
<property name="exceptionAttribute" value="ex"></property>
</bean>
基于注解方式配置
>>创建一个控制器
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
@ControllerAdvice
public class ExceptionController {
@ExceptionHandler(value = {ArithmeticException.class, NullPointerException.class})
public String testException(Exception ex, Model model){
//model.addAttribute("ex", ex);
return "error";
}
}