1.spring设置全局异常,它的原理是向上捕获

spring.xml配置

   <!--自定义全局异常处理器-->
<bean id="globalExceptionResolver" class="com.data.controller.exception.GlobalExceptionResolver"/>
import com.data.service.email.EmailMessage;
import com.data.utils.constant.AliasConstant;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView; @Controller
public class GlobalExceptionResolver implements HandlerExceptionResolver { @Resource
EmailMessage emailMessage; /**
* 进行全局异常过滤并处理
*
* @param request action 请求
* @param response 服务器响应
* @param handler 发生错误的事件句柄
* @param ex 异常情况
* @return 视图&对象
*/ @Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response,
Object handler, Exception ex) {
//使用StringBuilder提搞GC回收效率,降低垃圾回收开销
StringBuilder content = new StringBuilder("<++>AllInOne-busWeb抓捕到异常具体内容信息:<++> \t\n");
String userId = (String) request.getSession().getAttribute(AliasConstant.UserId);
content.append("造成该异常的用户userID为: " + userId + " \t\n");
content.append("爆出异常的类型为: " + ex.getClass() + " \t\n");
content.append("异常发生的位置为: " + handler + " \t\n");
content.append("造成的原因: " + ex.getMessage() + " \t\n");
content.append("造成的详细原因为:\t\n\n");
StackTraceElement[] trace = ex.getStackTrace();
for (StackTraceElement traceElement : trace)
content.append("at\t " + traceElement + "\t\n");
return null;
}
}

spring设置全局异常处理器的更多相关文章

  1. Spring Boot 中全局异常处理器

    Spring Boot 中全局异常处理器,就是把错误异常统一处理的方法.等价于Springmvc中的异常处理器. 步骤一:基于前面的springBoot入门小demo修改 步骤二:修改HelloCon ...

  2. 【spring】-- springboot配置全局异常处理器

    一.为什么要使用全局异常处理器? 什么是全局异常处理器? 就是把错误异常统一处理的方法. 应用场景: 1.当你使用jsr303参数校验器,如果参数校验不通过会抛异常,而且无法使用try-catch语句 ...

  3. Spring MVC全局异常后返回JSON异常数据

    问题: 当前项目是作为手机APP后台支持,使用spring mvc + mybaits + shiro进行开发.后台服务与手机端交互是发送JSON数据.如果后台发生异常,会直接返回异常页面,显示异常内 ...

  4. 基于SpringMVC的全局异常处理器介绍(转)

    近几天又温习了一下SpringMVC的运行机制以及原理 我理解的springmvc,是设计模式MVC中C层,也就是Controller(控制)层,常用的注解有@Controller.@RequestM ...

  5. SpringMVC实现全局异常处理器 (转)

    出处:  SpringMVC实现全局异常处理器 我们知道,系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手 ...

  6. SpringBoot项目中的全局异常处理器 Failed to invoke @ExceptionHandler method

    文件下载代码 @RequestMapping(value = { "/data/docking/picture/{id}/{empi}" }) public JsonApi pic ...

  7. 从源码看全局异常处理器@ExceptionHandler&@ExceptionHandler的生效原理

    1.开头在前 日常开发中,几乎我们的项目都会用到异常处理器,我们通常会定制属于自己的异常处理器,来处理项目中大大小小.各种各样的异常.配置异常处理器目前最常用的方式应该是使用@ControllerAd ...

  8. Spring Boot 全局异常配置

    Spring Boot 全局异常配置,处理异常控制器需要和发生异常的方法在一个类中.使用 ControllerAdvice 注解 package com.li.controller; import o ...

  9. springmvc中拦截器与springmvc全局异常处理器的问题

    最近在做一个练手的小项目, 系统架构中用了springmvc的全局异常处理器, 做了系统的统一异常处理. 后来加入了springmvc的拦截器, 为了一些需求, 在拦截器中的 preHandle 方法 ...

随机推荐

  1. logrotate

    logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到"转储"作用.可以节省磁盘空间. logrotate命令格式:logrot ...

  2. go语言-helloworld

    1.非root用户,先在home目录下载 wget https://storage.googleapis.com/golang/go1.7.3.src.tar.gz 2.解压包 tar -xzf go ...

  3. Spring MVC控制器

    Spring MVC中控制器用于解析用户请求并且转换为模型以提供访问应用程序的行为,通常用注解方式实现. org.springframework.stereotype.Controller注解用于声明 ...

  4. 渗透杂记-2013-07-13 ms10_061_spoolss

    [*] Please wait while the Metasploit Pro Console initializes... [*] Starting Metasploit Console... M ...

  5. C#常用开源类库

    一.AOP框架        Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ...

  6. 修改C:\WINDOWS\system32\drivers\etc\hosts 文件有什么作用

    host是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会 ...

  7. less简单用法

    http://less.bootcss.comless工具:koala工具url:http://koala-app.com/index-zh.html// less import: // less 文 ...

  8. 俄罗斯画师Mikhail Rakhmatullin作品

  9. iscroll双重滚动,向上滚动隐藏一部分,下拉后显示

    最近项目需求:下面是页面,当用户向上滚动时候,[隐藏的]部分也向上滚动直至消失,这时候[标题]和[搜索框]在最顶部,而[内部的]可以继续滚动,而当[内部的]滚动到最顶部时候,也就是[这个是内部1]时候 ...

  10. git push免输入账号和密码方法

    最近在做些oj,所以需要频繁的git push提交代码,每次都要输入帐号和密码,感觉不舒服,于是乎就做了如下设置,然后就可以开心的提交啦- Linux或者Mac下方法: 创建文件,进入文件,输入内容: ...