项目中经常需要对异常进行统一处理(扎口), 然后将异常信息包装传给前端。直接实现HandlerExceptionResolver接口即可,代码实现如下:
/**
* 功能描述: 全局异常处理
*
* @version 1.0.4
* @author jokerMonkey
*/
public class GlobalException implements HandlerExceptionResolver {
private static final Logger logger = LoggerFactory.getLogger(WebExceptionResolver.class);
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response,
Object object,
Exception ex) {
// 数据准备
String url = request.getRequestURL().toString();
MappingJackson2JsonView jsonView = new MappingJackson2JsonView();
jsonView.setDisableCaching(false);
jsonView.setExtractValueFromSingleKeyModel(true);
ModelAndView mav = new ModelAndView(jsonView);//返回界面以json格式展现
// 异常分支
if (ex instanceof 自定义异常) {
//存放异常的信息 code msg
} else if (ex instanceof MissingServletRequestParameterException) {
//参数异常
//存放异常的信息 code msg
} else {
//存放异常的信息 code msg
}
// 异常提示
mav.addObject(存放异常的信息 code msg);
return mav;
}
}