Springmvc Exception
对于异常处理,大多使用一个共同的异常类统一处理从dao,service,controller层抛出的异常,将页面跳转到共同的error页面。
public class CommonException implements HandlerExceptionResolver {
/** 日志 **/
private Logger logger = LoggerFactory.getLogger(CommonException.class);
/** 共同error处理页面 **/
private static final String COMMON_ERROR_PAGE = "/error/error";
/** 共同session超时处理页面 **/
private static final String COMMON_SESSION_PAGE = "/error/session";
/**
* 异常类的统一处理
*/
@Override
public ModelAndView resolveException(HttpServletRequest req, HttpServletResponse resp, Object obj,
Exception e) {
logger.debug(">>>resolveException(HttpServletRequest req, HttpServletResponse resp, Object obj,Exception e)");
ModelAndView mav = new ModelAndView();
// 默认error处理
mav.addObject("errorMsg", "数据处理异常,请重试或与管理员联系!");
mav.addObject("errorDetailMsg", e.getMessage());
mav.addObject("errorDetailCause", e.getCause());
mav.setViewName(COMMON_ERROR_PAGE);
// session超时处理
if(e instanceof SessionException) {
mav.addObject("errorMsg", "您因长时未操作会话超时,请点击【确定】,重新登录!");
mav.addObject("errorDetailMsg", (SessionException) e).getMsg());
mav.setViewName(COMMON_SESSION_PAGE);
}
logger.debug("<<<resolveException(HttpServletRequest req, HttpServletResponse resp, Object obj,Exception e)");
return mav;
}
注意需要实现 HandlerExceptionResolver 这个接口。
同时注册bean.
<bean class="com.****.CommonException"></bean>
统一异常处理拦截:
**
* description: 统一异常处理
*
* @Autor:DennyZhao
* @Date://
* @Version: 1.0.
*/
@ControllerAdvice
public class ApiExceptionHandler { /** 共同log信息 **/
protected final Logger logger = LoggerFactory.getLogger(ApiExceptionHandler.class); @ExceptionHandler()
@ResponseBody
String handleException(Exception e){
logger.error("未知异常", e);
return ScsErrorCode.ERROR_CODE_SCS_EP9999 + "出现未知异常," + e.getMessage();
}
}
Springmvc Exception的更多相关文章
- SpringMVC框架四:异常处理器
.异常分为:预期异常.运行时异常 dao.service.controller三层中有异常,依次向上抛出直到SpringMVC处理. 而SpringMVC交给HandlerExceptionResol ...
- shiro与Web项目整合-Spring+SpringMVC+Mybatis+Shiro(八)
Jar包
- SpringMVC参数绑定(四)
1.默认支持的参数类型 处理器形参中添加如下类型的参数处理适配器会默认识别并进行赋值. HttpServletRequest 通过request对象获取请求信息 HttpServletResponse ...
- SpringMVC异常处理器
本节内容: 异常处理思路 自定义异常类 自定义异常处理器 异常处理器配置 错误页面 异常测试 springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异 ...
- SpringMVC异常处理注解@ExceptionHandler@ControllerAdvice@ResponseStatus
参考: http://blog.csdn.net/w372426096/article/details/78429132 http://blog.csdn.net/w372426096/article ...
- springmvc中Controller前端控制器的映射与返回数据,以及异常处理
.@RequestMapping映射 该注解中存的是映射路径的字符串 1.1 value的值是一个数组,也就是说可以定义多个访问路径,同时“.action”可以省略,前端控制器中主要查找主体部分.注意 ...
- SpringMVC 之拦截器和异常处理
1. 文件上传 Spring 使用 Jakarta Commons FileUpload 技术实现了一个 MultipartResolver 实现类: CommonsMultipartResolver ...
- (转)SpringMVC学习(八)——SpringMVC中的异常处理器
http://blog.csdn.net/yerenyuan_pku/article/details/72511891 SpringMVC在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常 ...
- SpringMVC重要注解 @ControllerAdvice
@ControllerAdvice,是Spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强.让我们先看看@ControllerAdvice的实现: package org.spring ...
随机推荐
- day7 python学习
今日内容# 枚举 此代码可以用于对有一定值的列表进行按带序列号的方式打印出来 lis=['手机','电脑','潜艇','手表'] for index,i in enumerate(lis,1): pr ...
- graphEdit
目的 实现支持算法流程图 参考代码 c# DSGraphEdit - CodeProject NetworkView: A WPF custom control for visualizing and ...
- 【转】每天一个linux命令(11):nl命令
原文网址:http://www.cnblogs.com/peida/archive/2012/11/01/2749048.html nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件 ...
- linux mutt的安装和使用
首先介绍一下mutt这个软件,它是一款基于文字界面的邮件客户端,非常小巧,但功能强大,可以用它来读写,回复保存和删除你的邮件,能在linux命令行模式下收发邮件附件. 我只讲它很小的一部分功能,因为我 ...
- mysql 官方docker镜像使用教程
首先是pull image,这里我拉取的是5.x版本最新版: docker pull mysql:5 拉下来以后大可以按照官方的说明无脑启动,但是外部无法访问,所以绑定端口:docker run -- ...
- Grid中添加链接,打开选项卡页面
如何在grid中点击,添加一个选项卡并打开页面 function addeditnew(id, title) { var node ...
- Microsoft Dynamics CRM 2011 新建实体 需要注意的细节
新建一个实体,需要红色框内的是否勾选的意义,可以进一步加深对CRM的理解.如图: 下面对部分的进行了自我的理解,不对的地方,还请大家指出来.互相学习. 1.CRM2011中,在活动方面加强的新特性包括 ...
- Vue2.x整合百度地图JavaScript方案
代码很整合很简单,主要记录操作思路,注意回调百度地图api的回调函数 @/utils/map.js let Map = { BaiDuMap(ak) { return new Promise(func ...
- 【python】字符串函数
1.String模块中的常量: string.digits:数字0~9 string.letters:所有字母(大小写) string.lowercase:所有小写字母 string.printabl ...
- 微信公众号获取粉丝openid系统
做为一名开发人员,在测试当中也经常需要用到openid,但是微信公众号获取openid的方法也是特别麻烦!网页授权是最常见的方式, 但是网页授权的流程太复杂,不仅要开发,还要在公众号后台设置回调域名( ...