SpringMVC的异常处理

SpringMVC的异常处理

一、异常处理思路

Controller调用service,service调用dao,异常都是向上抛出的,最终由DispatcherServlet找异常处理器进行异常的处理。
在这里插入图片描述

二、SpringMVC的异常处理

第一步、编写自定义异常处理类(做提示信息的)。

第二步、编写异常处理器。

第三步、配置异常处理器(跳转到提示页面)。

首页jsp代码index.jsp

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

控制器代码块.java

package cn.itcast.controller;

import cn.itcast.exception.SYsException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/user")
public class UserController {
 @RequestMapping("/testException")
    public String testException()throws SYsException {
        System.out.println("方法执行了");
        try {
            //模拟一个异常
            int a=10/0;
        } catch (Exception e) {
            //打印异常信息
            e.printStackTrace();
            //抛出自定义异常信息
            throw  new SYsException("查询用户信息出现文错误");
        }
        return "success";
    }
}

注意: 要讲异常捕获到,然后要抛出的为我们自定的异常类。

自定义异常类SYsException.java

package cn.itcast.exception;
import org.springframework.stereotype.Controller;
/*
* 自定义异常类
* */
public class SYsException extends Exception{

    private String message;

    public SYsException(String message) {
        this.message=message;
    }


    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

异常处理器SYsExceptionResolver.java

package cn.itcast.exception;

import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/*
* 异常处理器对象
* */
public class SYsExceptionResolver implements HandlerExceptionResolver {


    /*
    * 处理异常业务逻辑
    * */

    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception ex) {
        System.out.println("异常处理器");

        SYsException e=null;
        if(ex instanceof SYsException){
            e=(SYsException)ex;
        }else{
            e=new SYsException("系统维护中。。。");
        }
        ModelAndView mv=new ModelAndView();

        mv.addObject("errorMsg",e.getMessage());

        mv.setViewName("error");
        return mv;
    }

}

这里应为要实现HandlerExceptionResolver类并且集成其中的方法,返回的类型是ModelAndView的类型。

前端控制器配置:Springmvc.xml

    <!--配置异常处理器-->
    <bean id="sysExceptionResolver" class="cn.itcast.exception.SYsExceptionResolver"/>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值