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>
   
原文地址:https://www.cnblogs.com/peachwang/p/7308734.html