动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

浅析SpringMVC异常处理

08-14 16:27 260浏览
举报 T字号
  • 大字
  • 中字
  • 小字

有一定Java基础的我们都知道所谓的异常主要包括两类:编译异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。SpringMVC 作为一款基于Java的全能型框架,SpringMVC异常处理也是必不可少的。

首先我们来了解一下SpringMVC异常处理的原理:

我们编写的Dao、Service、Controller出现异常都通过throws Exception向上抛出最后由前端控制器交由HandlerExceptionResolver异常处理器进行异常处理

下面我们根据下面的结构图来分析一下SpringMVC 中的异常处理的具体过程:

 

 

 

1、搭建编码分析

其主要就是自定义一个异常类和对应异常页面,核心则是HandlerExceptionResolver异常处理器,需要自定义一个类实现HandlerExceptionResolver接口并编写其中的方法resolveException,然后在springmvc.xml中配置。最后就是一些请求响应的业务逻辑以及页面的搭建了。

2、编写异常类

编写一个自定义异常类,继承Exception类

//自定义异常类

package com.Exception;

 

public class SysException extends Exception{

    //异常提示信息字段

    private String message;

 

    public SysException(String message){

        this.message=message;

    }

 

    @Override

    public String getMessage() {

        return message;

    }

 

    public void setMessage(String message) {

        this.message = message;

    }

}

3、编写自定义异常处理器

简单来说就是自定义一个类实现HandlerExceptionResolver接口并编写其中的方法resolveException

package com.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 SysExceptionResolver implements HandlerExceptionResolver {

    @Override

    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {

        // 获取到异常对象

        SysException sysException = null;

        if(e instanceof SysException){

            sysException = (SysException) e;

        }else{

            sysException = new SysException("系统正在维护升级ing....");

        }

        // 创建ModelAndView对象

        ModelAndView mv = new ModelAndView();

        //使用“errorMsg”存入提示信息

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

        mv.setViewName("error");

        return mv;

    }

}

4、在springmvc.xml中配置异常处理器

 

5、编写Error.jsp、index.jsp页面

Error.jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>

 

 

    

Title

 

 

    ${errorMsg}

 

 

复制代码index.jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

 

 

    

Title

 

 

 

异常处理

 

异常处理链接

 

 

 

6、编写collector代码模拟异常

  @RequestMapping("/user/testExcepting")

    public String testException() throws SysException {

        try{

            int a=1/0;

        }catch (Exception e){

            e.printStackTrace();

            throw new SysException("查询出现错误了...");

        }

        return "success";

    }

7、运行结果

出现上面的运行结果则说明SpringMVC 异常处理成功

学会SpringMVC 中的异常处理对于我们学习和使用SpringMVC框架无疑是意义重大的,为我们解决了后顾之忧,在使用SpringMVC时遇见系统抛出异常的情况可以第一时间得到处理如果想要学习更多关于SpringMVC的相关知识可以看springMVC视频教程

0人推荐
共同学习,写下你的评论
0条评论
红業
程序员红業

15篇文章贡献46120字

作者相关文章更多>

推荐相关文章更多>

DOM渲染的详细过程

QCode09-04 14:38

CSS水平和垂直居中技巧大梳理

Code大师09-04 14:50

mui的input框在IOS系统下无法聚焦或点击多次才能聚焦

不写代码你养我啊08-23 11:14

推荐的-视.频播放器以及在线客服

不写代码你养我啊09-17 18:02

谈谈java多线程的三大特性

要学习了06-18 18:13

发评论

举报

0/150

取消