JAVA_OA(六):SpringMVC处理异常
关于本部分的内容
这个部分网上的博文数量很多,内容很杂,虽然很全面,但是正好缺一篇新手级别的文章,于是我写了这篇文章,希望读完它,你快速轻易将学会如何使用它,而不用将太多的精力放在没用的地方.
在web.html中配置错误界面
之前我们对于错误,一般只是配置一下异常页面,这样就可以在错误放生时不太尴尬,比如github的UFO抓走了页面,腾讯的UFO抓走页面(怎么有种奇怪的感觉),确实是不错的创意,然而处理异常可又不仅仅是这么简单,一般而言,能捕获的异常还是先捕获的好.
Spring MVC处理异常有2种方式:
1 使用Spring MVC预置的类SimpleMappingExceptionResolver处理异常。
2 使用@ExceptionHandler处理异常。
1.使用Spring MVC预置的类SimpleMappingExceptionResolver处理异常。
<!-- 这种方式需要在组件中配置-->
<!--配置的 XML方式的异常处理 --><bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="java.lang.Exception">error</prop><!-- error指的是返回error页面,怎么写随意--> </props></property> </bean>
2 使用@ExceptionHandler处理异常。
@ExceptionHandlerpublic String handleException111(Exception e, HttpServletRequest request,HttpServletResponse response) throws Exception {if (e instanceof NumberFormatException) {// NumberFormatException:数字格式化错误request.setAttribute("ErrorMessage", "NumberFormatException:请输入数字");return "ErrorMessage";} else {throw e;}/*jsp:<%@ page pageEncoding="utf-8"%><html><head></head><body>服务器端发生错误:${ErrorMessage}</body></html>
*/
3.优先级问题
优先级:
既然在SpringMVC中有两种处理异常的方式,那么就存在一个优先级的问题。
当发生异常的时候,SpringMVC会按照以下的优先级处理:
(1)SpringMVC会先从配置文件找异常解析器HandlerExceptionResolver
(2)如果找到了异常异常解析器,那么接下来就会判断该异常解析器能否处理当前发生的异常
(3)如果可以处理的话,那么就进行处理,然后给前台返回对应的异常视图
(4)如果没有找到对应的异常解析器或者是找到的异常解析器不能处理当前的异常的时候,就看当前的Controller中有没有提供对应的异常处理器,如果提供了就由Controller自己进行处理并返回对应的视图
(5)如果配置文件里面没有定义对应的异常解析器,而当前Controller中也没有定义的话,那么该异常就会被抛出来。
参考文章
简单的”异常处理”,来自博客园
适中的”异常处理”,来自开源中国
全面的”异常处理”,来自iteye
JAVA_OA(六):SpringMVC处理异常相关推荐
- JAVA_OA(六):SpringMVC登陆实例
JAVA_OA(六):登陆实例 例子逻辑简述 SpringMVC中的jdbc 具体代码 例子逻辑简述 登陆信息的提交(提交方法:/user/login.do) Controller中执行@Reques ...
- SpringMVC处理异常
SpringMVC处理异常 @(SpringMVC)[springmvc, 异常] SpringMVC处理异常 SpringMVC单异常处理 SpitterController2 SpittleNot ...
- JAVA_OA(六):SpringMVC拦截器
说明 到这篇文章前,我们们所有的网页都是在可以直接在浏览器中输入XXX.do来直接访问的 ,甚至在得到jsp页面后,可以直接通过请求看到数据库的表格! 而这肯定是开发所不允许的.故而,是时候让拦截器登 ...
- SpringMVC教程--异常处理器详解
异常处理器 springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 1.1 异常处理思路 系统中异常包括两类:预期异常和运行时异常Run ...
- 可以参考《SpringMVC接口测试异常:Can not deserialize instance
2019独角兽企业重金招聘Python工程师标准>>> 之前使用springmvc搭建了restful风格的接口服务,在使用mockmvc进行集成测试的时候出现了异常:Can not ...
- SpringMVC中异常捕获
如果SpringMVC的action中发生异常,我们想将其跳转到一个固定的错误页面,可以通过applicationContext.xml中增加如下配置实现: <bean class=" ...
- Linux内核异常向量表在哪,ARM64的启动过程之(六):异常向量表的设定
ARM64的启动过程之(六):异常向量表的设定 作者:linuxer 发布于:2015-11-24 18:22 分类:ARMv8A Arch 一.前言 本文主要描述了4.1.10内核初始化过程中如何初 ...
- <X86汇编语言:实模式到保护模式>四十六 中断和异常的处理与抢占式多任务
中断和异常概述 抢占式任务切换(依赖于硬件中断信号) 用来处理异常或者中断的程序叫做中断处理过程(程序) 中断描述符表
- JAVA_OA(八):springMVC对JDBC的操作小项目a
一.程序知识点简介 基于数据库登陆操作 springMVC对数据库的操作 二.配置 IDE:myeclipse2015CI 数据库:Oracle11g 服务器:Tomcat8.0.3.0 spring ...
最新文章
- Nginx-09:Nginx原理
- telnet不能用!!!提示:-bash: telnet: command not found
- [2019HDU多校第一场][HDU 6590][M. Code]
- Linux学习-15-学习LVM逻辑卷
- 表单数据自动录入_Excel总表录入、分表自动更新,只要数据透视表和一个快捷键就行...
- MySQL数据库的回滚失败(JAVA)
- leetcode86. 分隔链表
- Visual Studio 2015 Update 3 RC 候选预览版粗来了
- struts2 poi excel 导出
- abaqus推荐用哪一版本的_ABAQUS推荐资料合集(一)
- 制作首页的显示列表(2017.11.29)
- 0x01第一个汇编程序
- iOS 自定义底部tabbar加号按钮实现方法
- 高质量C/C++编程指南
- 山东大学高频电子线路综合实验 调幅通信机系统实验详解
- 禁用或启用戴尔笔记本电脑上的触摸板
- C语言坐标打飞机,C语言实现打飞机小游戏
- echarts图表动态化
- 红黑树 原理和算法详细介绍(Java)
- mac浏览器打不开java_苹果电脑Mac打不开网页怎么办?Mac打不开网页的解决方法...
热门文章
- redis过期机制(官网文档总结)
- 迁移学习NLP:BERT、ELMo等直观图解
- Asp.net在线压缩和解压缩简单实现(附项目源码)
- 802.1X学习笔记
- UT斯达康XV6700应用及常见问题
- UEFI引导的系统下装双系统解决方案
- Python的yield关键字
- 想理解Java的IO,不要从操作系统开始说起的都是耍流氓...
- 一段Spring代码引起的调用绑定总结
- Mon Nov 18 01:40:52 CST 2019 WARN: Establishing SSL connection without server's identity verificatio