SpringMVC异常处理
全局异常处理
只需在applicationContext.xml中配置异常处理器
<!-- 异常处理器 --> <!-- 全局异常处理 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <!-- <prop key="异常类型">视图名</prop> --> <prop key="java.lang.Exception">error</prop> </props> </property> </bean>
局部异常处理
局部异常处理方法(优先):执行该方法后,不再调用ExceptionResolver(全局异常处理)
在控制器Controller添加该方法,当出现异常,会自动执行该约定方法
//当前Controller异常处理 @ExceptionHandler//局部异常处理方法 public String handlerException(HttpServletRequest request,Exception e){ request.setAttribute("msg", "输入信息有误导致计算失误"); return "age"; }
自定义ExceptionResolver
A.创建异常类并实现HandlerExceptionResolver接口如下:
package com.day04test.exception; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; public class MyExceptionHandler implements HandlerExceptionResolver { public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object method, Exception e) { //将异常信息写入文件 System.out.println("将异常信息写入文件"+e); //跳转到错误页面 ModelAndView mav=new ModelAndView(); mav.setViewName("error"); return mav; } }
B.在applicationContext.xml中配置自定义异常
<!-- 使用自定义的ExceptionResolver --> <bean class="com.day04test.exception.MyException"></bean>