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状态码,再把错误信息显示在页面上,如果用户看到这...

Maven+SpringMVC实现统一异常处理

  • 2016年07月29日 11:28
  • 18KB
  • 下载

14.SpringMVC 异常处理 - HandlerExceptionResolver

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

SpringMVC 异常处理 - HandlerExceptionResolver

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

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

springMVC对Controller执行过程中出现的异常提供了统一的处理机制,其实这种处理机制也简单,只要抛出的异常在DispatcherServlet中都会进行捕获,这样就可以统一的对异常进行处...

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

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

springMVC教程中级(五)统一异常处理

一、前沿        一般项目中都需要作异常处理,基于系统架构的设计考虑,使用统一的异常处理方法。包括预期可能发生的异常、运行时异常(RuntimeException),运行时异常不是预期会发...

Spring MVC 全局异常处理(1) --HandlerExceptionResolver

上一节小博老师给大家介绍了SpringMVC对异常处理的方法之一,使用默认的SimpleMappingExceptionResolver实现类。我们知道SimpleMappingExceptionRe...
  • bwf_erg
  • bwf_erg
  • 2016年12月21日 12:44
  • 124

SpringMVC之Web-统一异常处理(七)

在开发中,不管是dao层、service层还是controller层,都有可能抛出异常,在springmvc中,能将所有类型的异常处理从各处理过程解耦出来,既保证了相关处理过程的功能较单一,也实现了异...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:springmvc 统一异常处理 实现 HandlerExceptionResolver接口
举报原因:
原因补充:

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