spring 全局统一处理异常
来源:互联网 发布:linux 效率工具 编辑:程序博客网 时间:2024/06/06 20:54
记下两种方法:
一、使用注解 @controllerAdvice 和 @ExceptionHandler
@ControllerAdvice,是spring3.2提供的新注解
需要把@ControllerAdvice包含进来,否则不起作用:
<context:component-scan base-package="com.sishuok.es" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan>
@ControllerAdvice @EnableWebMvc
@Component public class GlobalExceptionHandler{ @ExceptionHandler(AjaxException.class) @ResponseBody public ErrorInfo<String>ajaxException(HttpServletRequest req,Exception e){ ErrorInfo<String> errInfo = new ErrorInfo<String>(); errInfo.setCode(ErrorInfo.ERROR); errInfo.setMessage(e.getMessage()); errInfo.setUrl(req.getRequestURI().toString()); errInfo.setData("some data"); return errInfo; } }在类上加注解 @ControllerAdvice 所有的异常都会被它捕获,通过 @ExceptionHandler (Exception.class)来选择不同异常的处理方法。
二、spring自定义异常拦截:
@Component public class MyHandlerExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object object, Exception exception) { //是否为ajax请求 String requestType = request.getHeader("X-Requested-With"); if(exception instanceof AuthorizationException){ response.setStatus(413);//无权限异常 主要用于ajax请求返回 response.addHeader("Error-Json", "{\"code\":413,\"msg\":\"nopermission\"}"); response.setContentType("text/html;charset=utf-8"); if("XMLHttpRequest".equals(requestType)){ return new ModelAndView(); } return new ModelAndView("redirect:/html/413.html"); } return null; } }实现了接口 HandlerExceptionResolver 进行异常全局统一处理。
阅读全文
0 0
- spring 全局统一处理异常
- Android全局异常统一处理
- SpringMVC全局异常统一处理
- Spring统一异常处理
- Spring > 统一异常处理
- Spring统一异常处理
- Spring 全局异常处理
- 关于应用的全局统一异常处理
- Spring MVC 全局异常处理-RESTAPI接口返回统一JSON格式-自定义异常处理--404异常捕捉
- spring mvc 异常统一处理
- spring mvc 异常统一处理
- Spring aop 异常统一处理
- spring mvc 异常统一处理
- spring mvc 异常统一处理
- spring mvc 异常统一处理
- spring mvc 异常统一处理
- spring mvc 异常统一处理
- Spring MVC统一异常处理
- nginx(3)变量转载自章亦春
- DBUtils 的使用 之 ResultSetHandler的实现 类;ArrayListHandler: 将多条记录封装到一个装有Object[]的List集合中。BeanHandler:(常用)将
- [SDOI2010]地精部落,HDU4055
- 八皇后问题(C++实现)
- 解决Button无法居中显示字符,特别是Webdings这类图形字符
- spring 全局统一处理异常
- python学习笔记--关于编码
- Python基础:序列
- 【BZOJ 1090】[SCOI2003]字符串折叠
- 数据结构与算法Java版——LCS最长子序列
- 来自一个程序员小白的“呐喊”
- TextInputLayout的简单使用
- yfk
- 用monit监控mongodb和rabbitmq