前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringMVC异常的处理机制

SpringMVC异常的处理机制

原创
作者头像
一只胡说八道的猴子
修改2020-10-23 10:08:29
7310
修改2020-10-23 10:08:29
举报
文章被收录于专栏:Java系列学习与数据结构算法

SpringMVC异常的处理机制

处理流程图

**其本质还是把异常交给SpringMVC框架来处理**

**系统的dao、service、controller出现异常都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理。springmvc提供全局异常处理器(一个系统只有一个异常处理器)进行统一异常处理。**

在这里插入图片描述
在这里插入图片描述

1.异常处理的两种方式

1.使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolve

2.实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器

1.使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolve

**处理逻辑**:使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver,处理器实现HandlerExceptionResolver 接口,全局异常处理器需要实现该接口

**SimpleMappingExceptionResolver:**就是通过简单的映射关系来决定由哪个视图,来处理当前的错误信息。

**SimpleMappingExceptionResolver:**提供通过异常类型exceptionMappings,来进行异常与视图之间的映射关系,提供在发生异常时,通过statusCodes来映射异常返回的视图名称和对应的HttpServletResponse的返回码。而且可以通过defaultErrorView和defaultErrorCode来指定默认值,defaultErrorView表示当没有在exceptionMappings里面找到对应的异常类型时,就返回defaultErrorView定义的视图,defaultErrorCode表示在发生异常时,当没有在视图与返回码的映射关系statusCodes里面找到对应的映射时,默认返回的返回码。

在使用SimpleMappingExceptionResolver时,当发生异常的时候,SimpleMappingExceptionResolver将会把当前的异常对象放到自身属性exceptionAttribute中,当没有指定exceptionAttribute时,exceptionAttribute就是用默认值exception

代码语言:txt
复制
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">

        <!--默认错误视图-->

        <!--即找不到默认的错误类型的时候就默认使用这个-->



        <property name="defaultErrorView" value="defaulterror"/>

        <!--具体类型报错的错误视图-->

        <property name="exceptionMappings">

            <map>

               <entry key="java.lang.ClassCastException" value="ClassCastException"/>

            </map>

        </property>

    </bean>

2.实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器

**2.1实现HandlerExceptionResolver**

代码语言:txt
复制
package com.pjh.Myexception;



import com.sun.org.apache.bcel.internal.generic.MONITORENTER;

import org.springframework.web.servlet.HandlerExceptionResolver;

import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class MyexceptionResolver implements HandlerExceptionResolver {

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

        ModelAndView modelAndView = new ModelAndView();

        if (e instanceof MyEcxeption){

          //对于自定义异常的操作

     }else{

        //对于非自定义异常的操作

    }



        return modelAndView;

    }

}

**2.2在配置文件中配置**

代码语言:txt
复制
 <bean class="com.pjh.Myexception.MyexceptionResolver"/>

以上就是SpringMVC系列的第四章,主要侧重SpringMVC异常处理的相关解析,我后续会持续更新我的学习内容,本博客主要侧重于数据结构于算法和java开发,觉得我的文章有帮助的小伙伴可以关注我,有疑问可评论私信,相逢即是缘,大家高处见

在这里插入图片描述
在这里插入图片描述

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SpringMVC异常的处理机制
  • 处理流程图
  • 1.异常处理的两种方式
  • 1.使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolve
  • 2.实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器
  • 以上就是SpringMVC系列的第四章,主要侧重SpringMVC异常处理的相关解析,我后续会持续更新我的学习内容,本博客主要侧重于数据结构于算法和java开发,觉得我的文章有帮助的小伙伴可以关注我,有疑问可评论私信,相逢即是缘,大家高处见
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档