springmvc处理局部异常和全局异常
springmvc通过HandlerExceptionResolver(是一个接口,在spring-webmvc依赖下)处理程序异常,包括处理器异常、数据绑定异常以及处理器执行时发生的异常。HandlerExceptionResolver仅有一个接口方法,如下

当发生异常时,springmvc会调用resolverException()方法,并转到ModelAndView对应的视图中,作为一个异常处理报告页面反馈给用户。
局部异常处理
局部异常处理仅能处理指定controller中的异常,使用@ExceptionHandler注解(在spring-web依赖下)实现,@ExceptionHandler可以指定多个异常,代码如下
@RequestMapping(value = "exlogin.html", method = RequestMethod.GET)
public String exLogin(@RequestParam String userCode, @RequestParam String userPassword){
User user = userService.selectUserByUserCodeAndUserPassword(userCode, userPassword);
if (null == user){
throw new RuntimeException("用户名或者密码不正确!");
}
return "redirect:/user/main.html";
} @ExceptionHandler({RuntimeException.class})
public String handlerException(RuntimeException e, HttpServletRequest request){
request.setAttribute("e", e);
return "error";
}
在异常处理方法handlerException()中,把异常提示信息放入HttpServletRequest对象中
展示页面输出相应的异常信息${e.message},输出自定义的异常信息
全局异常处理
全局异常处理可使用SimpleMappingExceptionResolver来实现。它将异常类名映射为视图名,即发生异常时使用对应的视图报告异常。然后在springmvc-servlet.xml中配置全局异常。
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="java.lang.RuntimeException">error</prop>
</props>
</property>
</bean>
指定当控制器发生RuntimeException异常时,使用error视图显示异常信息。当然也可以在<props>标签内自定义多个异常。
error.jsp页面中的message显示,需修改为${exception.message}来抛出异常信息。
springmvc处理局部异常和全局异常的更多相关文章
- Xamarin.Android-捕获未处理异常(全局异常)
		
一.前言 android中如果出现了未处理的异常,程序会闪退,这是非常不好的用户体验,很多用户会因此卸载APP,因此未处理的异常是应该尽力避免的. 有些很难避免的异常(如:IO.网络等),应在代码中进 ...
 - SprimgMVC学习笔记(六)—— 全局异常的处理
		
一.处理思路 springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑. 系统中异常包括两类:预期异常和运行时异常RuntimeExcept ...
 - 从壹开始前后端分离 [.netCore 不定期更新 ] 三十五║ 完美实现全局异常日志记录
		
缘起 哈喽我是不定期更新的日常,昨天群里小伙伴问到了记录日志,当然,以前我也挖过这个坑,后来一直没有来得及填上,也想着 swagger 一直又有错误信息展示的功能,就迟迟没有添加这个功能,不过昨天夜里 ...
 - Asp.net Core全局异常监控和记录日志
		
前言 系统异常监控可以说是重中之重,系统不可能一直运行良好,开发和运维也不可能24小时盯着系统,系统抛异常后我们应当在第一时间收到异常信息.在Asp.net Core里我使用拦截器 ...
 - springMVC自定义全局异常
		
SpringMVC通过HandlerExceptionResolver处理程序异常,包括Handler映射,数据绑定以及目标方法执行时所发生的异常. SpringMVC中默认是没有加装载Handler ...
 - Spring-MVC开发之全局异常捕获全面解读
		
异常,异常 我们一定要捕获一切该死的异常,宁可错杀一千也不能放过一个! 产品上线后的异常更要命,一定要屏蔽错误内容,以免暴露敏感信息! 在用Spring MVC开发WEB应用时捕获全局异常的方法基本有 ...
 - springMVC的全局异常设置
		
先说为什么要设置全局异常.比如说,你程序出错了,500错误,大家都知道,程序出错就不会往下面执行,但是客户端那边还是一直等待状态,所以,我们后台无论正常还是报错都要给客户端返回数据.当然,我们可以tr ...
 - springMVC的高级数据绑定,以及json交互,全局异常配置,
		
一.窄化请求映射 1.在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头,通过此方法对url进行分类管理. 如下: @Con ...
 - Struts局部异常与全局异常处理
		
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAowAAAG3CAIAAACxBJNyAAAgAElEQVR4nOy9z6tk15Ymdv4B0eRU8O
 
随机推荐
- 关于C语言\b \t \n及转义序列的理解
			
转义序列 说明 \b 后退一格(Backspace) \t 水平制表(Tab=4个空格) \v 垂直制表 \r 回车(Enter) \f 换页 \a 发出鸣响 \n 换行 \" 输出/输入双 ...
 - Three.js 开发机房(四)
			
这一节我们讲讲怎么画机柜,其实机柜如果作的复杂一点.逼真一点可以用3D建模工具,不过一般的项目中也不用做的那么麻烦,那我们就可以将机柜抽象以下,首先它是一块具有长宽高的立方体铁块,然后我们从中间在掏掉 ...
 - 【LeetCode】5# 最长回文子串
			
题目描述 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意 ...
 - FreeSql (二十九)Lambda 表达式
			
FreeSql 支持功能丰富的表达式函数解析,方便程序员在不了解数据库函数的情况下编写代码.这是 FreeSql 非常特色的功能之一,深入细化函数解析尽量做到满意,所支持的类型基本都可以使用对应的表达 ...
 - .Net基础篇_学习笔记_第七天_随机数的产生
			
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
 - Fragment的创建与通信
			
由于这里涉及到接口回调的问题,所以先来看一看什么是接口回调: 这就好比老板和员工的微妙关系,老板需要员工去工作,员工挣钱了以后还要告诉老板自己挣了多少钱,然后由老板来处理这些钱. 首先创建一个接口: ...
 - Java第三次作业第五题
			
5. [问题描述]Fibonacci序列处理 从文件in.txt中读取第一个数作为Fibonacci数列的开始数n,读取第二个数,作为需要写入的数的个数m. 将从n开始的m个Fibonacci数列写入 ...
 - Linux 笔记 - 第八章 文档的打包与压缩
			
博客地址:http://www.moonxy.com 一.前言 在 Linux 系统中,文件的后缀名没有实际的意义,加或者不加都无所谓.但是为了便于区分,我们习惯在定义文件名时加一个后缀名,比如常见的 ...
 - 谈谈HTTPS安全认证,抓包与反抓包策略
			
文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信 ...
 - CentOS7升级OpenSSL到1.1.1
			
首先下载解压最新的 OpenSSL wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1-stable.zip unzip Ope ...