两步即可:
1、 配置自己的 统一处理类,到xml中。
<!-- 异常统一处理 -->
<bean id="exceptionHandler" class="com.util.aop.MyExceptionHandler"/>
2、实现 统一处理 接口。
package com.util.aop;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class MyExceptionHandler implements HandlerExceptionResolver {
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
Exception ex) {
ModelAndView mv = new ModelAndView();
/* 使用response返回 */
response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); //设置状态码500
response.setContentType(MediaType.APPLICATION_JSON_VALUE); //设置ContentType
response.setCharacterEncoding("UTF-8"); //避免乱码
response.setHeader("Cache-Control", "no-cache, must-revalidate");
JSONObject obj = new JSONObject();
obj.put("DATA", new JSONArray());
obj.put("CODE", "10001");
obj.put("MSG", ex.getMessage());
obj.put("EX", ex.toString());
try {
response.getWriter().write(obj.toJSONString());
} catch (IOException e) {
e.printStackTrace();
}
return mv;
}
}
这里附带讲一下, 对应 前台ajax统一异常处理。 请看下一篇文章。