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

来源:互联网 发布:重生之网络娱乐txt全集 编辑:程序博客网 时间:2024/04/29 11:15

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;
}

0 0
原创粉丝点击