SpringMVC的异常处理

 

1.编写自定义异常类

package com.leon.exception;
//自定义异常类
public class SysException extends Exception{
    private String messgae;

    public SysException(String messgae) {
        this.messgae = messgae;
    }

    public String getMessgae() {
        return messgae;
    }

    public void setMessgae(String messgae) {
        this.messgae = messgae;
    }

    @Override
    public String toString() {
        return "SysException{" +
                "messgae='" + messgae + '\'' +
                '}';
    }
}

2.编写异常处理器

package com.leon.exception;

import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//自定义异常处理器
public class SysExceptionResolvor implements HandlerExceptionResolver{

    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception ex) {
        SysException e  = null;
        if(ex instanceof SysException){
            e = (SysException) ex;
        }else{
            e = new SysException("系统正在维护。。。");
        }
        //创建ModelAndView对象
        ModelAndView mv = new ModelAndView();
        mv.addObject("errorMsg",e);
        mv.setViewName("error");
        return mv;
    }
}

3.配置异常处理器

    <!--配置异常处理器 -->
    <bean id="sysExceptionResolvor" class="com.leon.exception.SysExceptionResolvor"></bean>

 

测试:

jsp页面点击超链接

    <h3>异常</h3>
    <a href="/user/testException">异常</a>

Usercontroller控制器在处理时产生了异常

    //异常
    @RequestMapping("/testException")
    public String  testException() throws SysException {
        System.out.println("testException执行了");

        try {
            //模拟异常
            int i = 10/0;
        } catch (Exception e) {
            //打印异常信息
            e.printStackTrace();
            //抛出自己定义的异常
            throw new SysException("查询所有用户出现错误了。。。");
        }

        return "success";
    }

然后被SysExceptionResolvor 异常处理器处理后跳转到error.jsp页面

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值