一、SpringMVC 框架异常处理流程

二、异常处理的两种方式

三、简单异常处理器 SimpleMappingExceptionResolver

1、自定义异常类

package com.lt.exception;public class MyException extends Exception {
}

2、service

package com.lt.service;import com.lt.exception.MyException;import java.io.FileNotFoundException;public interface DemoService {void show1();void show2();void show3() throws FileNotFoundException;void show4();void show5() throws MyException;
}
package com.lt.service;import com.lt.exception.MyException;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;public class DemoServiceImpl implements  DemoService{@Overridepublic void show1() {System.out.println("抛出 类型转换异常..");Object str="lt";Integer num=(Integer) str;}@Overridepublic void show2() {System.out.println("抛出 除零异常..");int i=1/0;}@Overridepublic void show3() throws FileNotFoundException {System.out.println("抛出 文件找不到异常..");InputStream in=new FileInputStream("c:/xxx/xxx/xx.txt");}@Overridepublic void show4() {System.out.println("抛出 空指针异常..");String str=null;str.length();}@Overridepublic void show5() throws MyException{System.out.println("抛出 自定义异常...");throw  new MyException();}
}

3、Controller

package com.lt.controller;import com.lt.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;@Controller
public class DemoController {@Autowiredprivate DemoService demoService;@RequestMapping("/show")public String show(@RequestParam(value = "name",required = true) String name) throws Exception{System.out.println("show running....");//demoService.show1();demoService.show2();
//        demoService.show3();
//        demoService.show4();
//        demoService.show5();return "index";}
}

4、SpringMvc配置文件

    <!--配置简单异常处理器 SimpleMappingExceptionResolver--><bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"><!--defaultErrorView 默认错误,视图 /jsp/error.jsp--><property name="defaultErrorView" value="error"/><!--exceptionMappings 异常映射:可以配置多个异常映射--><property name="exceptionMappings"><map><!--com.lt.exception.MyExceptionyic异常--><entry key="com.lt.exception.MyException" value="error"/><!--java.lang.ClassCastException 类型转换异常--><entry key="java.lang.ClassCastException" value="error"/></map></property></bean>

5、异常处理页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
出错了!<br/>
</body>
</html>

四、自定义异常处理需要实现HandlerExceptionResolver接口

1、创建自定义异常处理需要实现HandlerExceptionResolver接口

package com.lt.resolver;import com.lt.exception.MyException;
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 {@Overridepublic ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {ModelAndView modelAndView=new ModelAndView();if(e instanceof MyException){modelAndView.addObject("info","自定义异常");}else if(e instanceof ClassCastException){modelAndView.addObject("info","类型转换异常");}modelAndView.setViewName("error");return  modelAndView;}
}

2、SpringMVC配置文件中,配置异常处理器

<!-- 自定义异常处理 -->
<!-- bean的机制:spring 启动时,会加载并创建这个实例 -->
<bean class="com.lt.resolver.MyExceptionResolver" />

3、测试异常页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
出错了!<br/>
异常:${info}
</body>
</html>

SpringMVC 异常处理(简单异常处理器 SimpleMappingExceptionResolver;自定义异常处理需要实现HandlerExceptionResolver接口)相关推荐

  1. 简单异常处理器SimpleMappingExceptionResolver

    SpringMVC已经定义好了该类型转换器,在使用时可以根据项目情况进行相应异常与视图的映射配置 <!--配置简单映射异常处理器--> <bean class="org.s ...

  2. (转)SpringMVC学习(八)——SpringMVC中的异常处理器

    http://blog.csdn.net/yerenyuan_pku/article/details/72511891 SpringMVC在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常 ...

  3. SpringMVC构建全局异常处理器

    异常处理器 SpringMVC提供全局异常处理器进行统一的异常处理,一个系统只能有一个异常处理器. 系统的dao.service.controller层出现异常的时候都throws Exception ...

  4. SSM整合-异常处理器及项目异常处理方案

    目录 一.异常处理器 二.项目异常处理方案 项目异常分类 项目异常处理方案 项目异常处理 一.异常处理器 程序开发过程中不可避免的会遇到异常现象 出现异常现象的常见位置与常见诱因如下: ■ 框架内部抛 ...

  5. java 异常处理发生异常_Java中的异常处理

    java 异常处理发生异常 Exception Handling in Java is a very interesting topic. Exception is an error event th ...

  6. springmvc框架自带的异常处理器SimpleMappingExceptionResolver的使用

    使用分三步 1.定义异常类 2.在处理器中的用法 3.在springmvc配置文件中需要加配置 转载于:https://www.cnblogs.com/hwgok/p/7990957.html

  7. SpringMVC实现全局异常处理器

    通过 @ControllerAdvice 注解,我们可以在一个地方对所有 @Controller 注解的控制器进行管理. 注解了 @ControllerAdvice 的类的方法可以使用 @Except ...

  8. SpringMVC使用HandlerExceptionResolver实现全局异常处理器

    在SpringMVC中,提供了一个全局异常处理器,用于对系统中出现的异常进行统一处理.在一般的系统中,DAO层.Service层及Controller层出现异常都以"throws Excep ...

  9. Spring MVC的异常处理器

    异常处理器 异常处理思路 Java 中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试等手段减少运行时异常的发生. ...

最新文章

  1. QML与Qt C++ 交互机制探讨与总结
  2. Mac 技术篇-mac远程桌面直接连接windows系统,微软官方工具Microsoft Remote Desktop远程桌面工具安装与使用
  3. linux上安装telnet服务器:linux vmvare虚拟机 安装telnet redhat9
  4. 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结
  5. 浅谈tomcat的配置及数据库连接池的配置
  6. 《架构探险》第三章 项目核心实现
  7. 已有项目要不要迁移到Addressable系统?
  8. 八、Python 之内置函数(。。。)
  9. 基本排序算法之1——希尔排序shellsort
  10. 模糊PID控制算法的C++实现
  11. 基于51单片机ADC0808的proteus仿真
  12. 富士通推出区块链技术驱动的数据存储系统(GBCAX)
  13. Xcode打包ipa
  14. 巧用python求解逻辑题,特简单!
  15. 1647120-04-4,c(Bua-Cpa-Thi-Val-Asn-Cys)-Pro-d-Arg-NEt2 acetate多肽
  16. Udacity数据分析(进阶)-Prosper 贷款数据分析
  17. java中考勤管理_JAVA人事员工考勤管理(含论文)源码
  18. createCriteria用法
  19. 人工智能几行代码实现换脸
  20. 第十章——维护索引(8)——在计算列中创建索引提高性能

热门文章

  1. css 鼠标离开样式,CSS3 - 鼠标移入移出时改变样式
  2. Pytorch 基础
  3. VXLAN内通信与EVPN
  4. linux进程存放 proc,Linux系统下proc目录详解
  5. vue 动态获取当前时间
  6. 安装web服务器访问站点的三种方式,Web服务器配置方法
  7. VR消防虚拟实训系统,带你身临其境学习消防逃生技能
  8. 物联网卡管理平台哪家好
  9. html3d上下翻转4面效果,纯CSS 3D翻转一个面(翻转导航菜单 立方体)
  10. 认可放心的python培训课程