SpringMVC 异常处理(简单异常处理器 SimpleMappingExceptionResolver;自定义异常处理需要实现HandlerExceptionResolver接口)
一、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接口)相关推荐
- 简单异常处理器SimpleMappingExceptionResolver
SpringMVC已经定义好了该类型转换器,在使用时可以根据项目情况进行相应异常与视图的映射配置 <!--配置简单映射异常处理器--> <bean class="org.s ...
- (转)SpringMVC学习(八)——SpringMVC中的异常处理器
http://blog.csdn.net/yerenyuan_pku/article/details/72511891 SpringMVC在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常 ...
- SpringMVC构建全局异常处理器
异常处理器 SpringMVC提供全局异常处理器进行统一的异常处理,一个系统只能有一个异常处理器. 系统的dao.service.controller层出现异常的时候都throws Exception ...
- SSM整合-异常处理器及项目异常处理方案
目录 一.异常处理器 二.项目异常处理方案 项目异常分类 项目异常处理方案 项目异常处理 一.异常处理器 程序开发过程中不可避免的会遇到异常现象 出现异常现象的常见位置与常见诱因如下: ■ 框架内部抛 ...
- java 异常处理发生异常_Java中的异常处理
java 异常处理发生异常 Exception Handling in Java is a very interesting topic. Exception is an error event th ...
- springmvc框架自带的异常处理器SimpleMappingExceptionResolver的使用
使用分三步 1.定义异常类 2.在处理器中的用法 3.在springmvc配置文件中需要加配置 转载于:https://www.cnblogs.com/hwgok/p/7990957.html
- SpringMVC实现全局异常处理器
通过 @ControllerAdvice 注解,我们可以在一个地方对所有 @Controller 注解的控制器进行管理. 注解了 @ControllerAdvice 的类的方法可以使用 @Except ...
- SpringMVC使用HandlerExceptionResolver实现全局异常处理器
在SpringMVC中,提供了一个全局异常处理器,用于对系统中出现的异常进行统一处理.在一般的系统中,DAO层.Service层及Controller层出现异常都以"throws Excep ...
- Spring MVC的异常处理器
异常处理器 异常处理思路 Java 中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试等手段减少运行时异常的发生. ...
最新文章
- QML与Qt C++ 交互机制探讨与总结
- Mac 技术篇-mac远程桌面直接连接windows系统,微软官方工具Microsoft Remote Desktop远程桌面工具安装与使用
- linux上安装telnet服务器:linux vmvare虚拟机 安装telnet redhat9
- 阿里P8架构师谈:MySQL慢查询优化、索引优化、以及表等优化总结
- 浅谈tomcat的配置及数据库连接池的配置
- 《架构探险》第三章 项目核心实现
- 已有项目要不要迁移到Addressable系统?
- 八、Python 之内置函数(。。。)
- 基本排序算法之1——希尔排序shellsort
- 模糊PID控制算法的C++实现
- 基于51单片机ADC0808的proteus仿真
- 富士通推出区块链技术驱动的数据存储系统(GBCAX)
- Xcode打包ipa
- 巧用python求解逻辑题,特简单!
- 1647120-04-4,c(Bua-Cpa-Thi-Val-Asn-Cys)-Pro-d-Arg-NEt2 acetate多肽
- Udacity数据分析(进阶)-Prosper 贷款数据分析
- java中考勤管理_JAVA人事员工考勤管理(含论文)源码
- createCriteria用法
- 人工智能几行代码实现换脸
- 第十章——维护索引(8)——在计算列中创建索引提高性能