文档章节

SpringMVC 异常统一处理接口 HandlerExceptionResolver

刘引惟
 刘引惟
发布于 2017/06/01 17:53
字数 201
阅读 15
收藏 3
点赞 0
评论 0

1.源码接口 

/**
 * 源码接口定义
 */
public interface HandlerExceptionResolver {
 
	ModelAndView resolveException(
			HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex);

}

 

2.源码接口实现

@Component
public class ExceptionHandler implements HandlerExceptionResolver {

	@Override
	public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {

		// 判断是否AJAX请求
		if (request.getHeader("x-requested-with") != null && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) {
			try {
				response.setContentType("application/json;charset=UTF-8");
				PrintWriter writer = response.getWriter();
				Map<String, Object> map = new HashMap<String, Object>();
				map.put("success", false);
				if (ex instanceof MessageException) {// 安全起见,业务异常前端可见,否则统一归为系统异常
					map.put("errorMsg", ex.getMessage());
				} else {
					map.put("errorMsg", "系统异常!");
				}
				Gson gson = new Gson();
				writer.write(gson.toJson(map));
				writer.flush();
				writer.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		Map<String, Object> model = new HashMap<>();
		return new ModelAndView("/error", model); 
	} 
}

ExceptionHandler 实现 HandlerExceptionResolver接口,需要添加 @Component 注解,或者增加配置文件 <bean class="com.xxg.ExceptionHandler " /> 。 

配置完成,后台Controller中所有的业务异常都会由ExceptionHandler来处理。

© 著作权归作者所有

共有 人打赏支持
刘引惟
粉丝 7
博文 75
码字总数 17500
作品 0
浦东
Spring MVC 系统异常处理方式及性能对比

大部分公司所用的Spring框架版本是3.1版本以下,所以今天暂时总结3.1版本的Spring-MVC异常处理方式。 一、Spring MVC处理异常有3种方式: (1)使用Spring-MVC提供的SimpleMappingExceptionR...

Candy_Desire
2014/10/17
0
5
使用Spring MVC统一异常处理实战

使用Spring MVC统一异常处理实战 1 描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需...

庸夫俗子
2015/03/05
0
0
Springmvc自定义统一异常处理

1.默认异常处理(不友好) 2.自定义统一异常处理流程 1)demo-base中pom.xml修改 <dependency> </dependency> 2)自定义异常处理类-DemoExceptionResolver 在demo-base中定义DemoExceptionRe......

warlockssss
2016/09/18
31
0
SpringMVC统一异常处理简单配置

第一步:自定义异常处理类实现HandlerExceptionResolver接口 import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import org.springframework.w......

Tasty-宝
2014/12/10
0
0
springmvc异常统一处理

所有错误统一处理,不论dao层,service层,controller层都层层向向上抛, 具体实现如下 1. spring提供的类SimpleMappingExceptionResolver 2. spring接口HandlerExceptionResolver 3. spring注...

newworld2010
2016/10/08
31
0
springboot + shiro 权限注解、请求乱码解决、统一异常处理

springboot + shiro 权限注解、请求乱码解决、统一异常处理 前篇 后台权限管理系统 相关: spring boot + mybatis + layui + shiro后台权限管理系统 springboot + shiro之登录人数限制、登录...

wyait
06/06
0
0
Spring MVC 全局异常处理(1) --HandlerExceptionResolver

上一节小博老师给大家介绍了SpringMVC对异常处理的方法之一,使用默认的SimpleMappingExceptionResolver实现类。我们知道SimpleMappingExceptionResolver类是接口HandlerExceptionResolver的...

博为峰教研组
2016/12/21
77
0
Spring Boot搭建Web项目要点

搭建WEB项目过程中,哪些点需要注意: 1、技术选型: 前端:freemarker、vue 后端:spring boot、spring mvc 2、如何包装返回统一结构结果数据? 首先要弄清楚为什么要包装统一结构结果数据,...

woter
07/09
0
0
Spring MVC 全局异常处理(1) --SimpleMappingExceptionResolver

我们经常会遇到一些设计的不好的应用,当出现一些未知异常时,就显示一个打印着错误堆栈的网页。看到这些错误堆栈信息往往用户都会一头雾水,我们会抱怨这个设计实在太不友好了。而且错误堆栈...

博为峰教研组
2016/12/20
25
0
SpringMVC异常统一处理(异常信息的国际化,日志记录)

JAVA EE项目中,不管是对底层的数据操作,还是业务层的处理过程,还是控制层的处理,都不可避免的会遇到各种可预知的(业务异常主动抛出)、不可预知的异常需要处理。一般dao层、service层的异常都...

留给明天
2016/11/17
80
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
0
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
0
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
12
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
1
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
1
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
0
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
2
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部