spring MVC的异常处理

方式一:SimpleMappingExceptionResolver


 

1.springmvc.xml

    <!--异常处理-->
    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="com.dss.exception.MyException">error/MyError</prop>
            </props>
        </property>

        <property name="defaultErrorView" value="error/Error"/>
        <property name="exceptionAttribute" value="ex"/>
    </bean>

 

注:添加此段代码!

2.ExceptionController.java

package com.dss.controller;

import com.dss.exception.MyException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

/**
 * 异常处理controller
 * */

@Controller
public class ExceptionController {

    @RequestMapping("/exception.do")
    public ModelAndView myException(String name) throws Exception{

        ModelAndView mv = new ModelAndView();

        if ("jean".equals(name)){
            throw new MyException("我的自定义异常");
        }

        if (!"jean".equals(name)){
            throw new Exception("异常");
        }

        return mv;

    }
}

 

3.Myexception.java

package com.dss.exception;

/**
 * 自定义异常
 * */
public class MyException extends Exception {

    public MyException(){

        super();
    }

    public MyException(String message){

        super(message);
    }
}

 

 4.Error.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
默认异常<br>
${ex.message}
</body>
</html>

5.MyError.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
自定义
<br>
${ex.message}
</body>
</html>

 

6.浏览器访问

 

 

 方式二:自定义异常处理


1.创建自定义异常的controller类

/**
 * 自定义异常
 */
public class MyExceptionResolver implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
        ModelAndView mv = new ModelAndView();
        mv.addObject("ex", ex);

        //设置默认异常处理页面
        mv.setViewName("error/Error");

        //判断ex是否是MyException
        if (ex instanceof MyException) {
            //可以在这里面编写捕获到该异常之后的操作

            //设置跳转页面
            mv.setViewName("error/MyError");
        }

        return mv;
    }
}

 

 2.在springmvc.xml文件中注册

<bean class="com.monkey1024.exception.MyExceptionResolver"/>

 

 注:如果有其他异常处理方式的话,要把其他的给注释掉.

 

posted on 2018-08-02 11:10  董大志  阅读(130)  评论(0)    收藏  举报

导航