springmvc 统一异常处理 实现 HandlerExceptionResolver接口

原创 2016年05月30日 14:55:40

1,sping配置文件中添加

<!-- 异常拦截 -->
<bean id="exceptionResolver" class="com.htys.interceptor.Exceptionhandler"/>  

2,实现HandlerExceptionResolver接口

@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) {
if(ex!=null){
ex.printStackTrace();
}
String o=null;
try {
o=((HandlerMethod)handler).getMethod().getReturnType().getSimpleName();
} catch (Exception e) {
}
if (o != null) {
if (o.equals(JSONResult1.class.getSimpleName())) {
response.setContentType("text/html;charset=UTF-8");
// 设置状态码
PrintWriter w = null;
try {
w = response.getWriter();
String ss = Util.getLaseCause(ex);
ss=(ss == null||"null".equals(ss)) ? "空指针" : ss;
if(ss.equals("成功")){
response.setStatus(200);
w.write(JSON.toJSONString(new JSONResult1("成功", true)));
}else{
response.setStatus(1000);
w.write(ss);
}
ss = null;
} catch (IOException e) {
e.printStackTrace();
} finally {
w.flush();
w.close();
}
return new ModelAndView();
} else if (o.equals(JSONResult.class.getSimpleName())) {
response.setContentType("text/html;charset=UTF-8");
// 设置状态码
response.setStatus(1000);
PrintWriter w = null;
try {
w = response.getWriter();
String ss = Util.getLaseCause(ex);
w.write((ss == null||"null".equals(ss)) ? "空指针" : ss);
ss = null;
} catch (IOException e) {
e.printStackTrace();
} finally {
w.flush();
w.close();
}
return new ModelAndView();
} else if(o.equals(PCJson.class.getSimpleName())){
response.setContentType("text/html;charset=UTF-8");
// 设置状态码
response.setStatus(1000);
PrintWriter w = null;
try {
w = response.getWriter();
String ss = Util.getLaseCause(ex);
w.write((ss == null||"null".equals(ss)) ? "空指针" : ss);
ss = null;
} catch (IOException e) {
e.printStackTrace();
} finally {
w.flush();
w.close();
}
return new ModelAndView();
}
}
ModelAndView mv=new ModelAndView("error");
String ss = Util.getLaseCause(ex);//获取根异常
mv.addObject("error", (ss == null||"null".equals(ss)) ? "空指针" : ss);
return mv;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

基于springframework中HandlerExceptionResolver接口的统一异常处理

系统中异常类型有哪些? 包括预期可能发生的异常、运行时异常(RuntimeException),运行时异常不是预期会发生的。 针对预期可能发生的异常,在代码手动处理异常可以try/catc...

Spring MVC的Controller统一异常处理:HandlerExceptionResolver

出现异常并不可怕,可怕的是出现了异常,你却不知道,也没有进行异常处理。 spring MVC的Controller出现异常的默认处理是响应一个500状态码,再把错误信息显示在页面上,如果用户看到这...

Spring MVC的Controller统一异常处理:HandlerExceptionResolver

Spring MVC的Controller统一异常处理:HandlerExceptionResolver
  • y505q
  • y505q
  • 2017-06-29 16:54
  • 149

Spring MVC的Controller统一异常处理:HandlerExceptionResolver

出现异常并不可怕,可怕的是出现了异常,你却不知道,也没有进行异常处理。 spring MVC的Controller出现异常的默认处理是响应一个500状态码,再把错误信息显示在页面上,如果用户看到这...

14.SpringMVC 异常处理 - HandlerExceptionResolver

基本概念这里讲的异常处理,具体来说是控制器(controller)请求处方法的异常。在 springmvc 中可能存在着多个控制器,各个控制器又存在着众多请求处理方法。若在每个方法上都进行异常处理,那...

springMVC源码分析--异常处理机制HandlerExceptionResolver执行原理(二)

上一篇博客springMVC源码分析--异常处理机制HandlerExceptionResolver简单示例(一)中我们简单地实现了一个异常处理实例,接下来我们要介绍一下HandlerExceptio...

SpringMVC 异常处理 - HandlerExceptionResolver

今天用到SpringMVC中的异常处理,所以决定写下来,以后也会用的着。Spring MVC提供了一个HandlerExceptionResolver接口,可用于统一异常处理。代码如下

springMVC源码分析--异常处理机制HandlerExceptionResolver简单示例(一)

springMVC对Controller执行过程中出现的异常提供了统一的处理机制,其实这种处理机制也简单,只要抛出的异常在DispatcherServlet中都会进行捕获,这样就可以统一的对异常进行处...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)