不求其他,记录下吧
异常抛出处理如果采用spring拦截处理,不要捕获,否则拦截将不会生效
@ExceptionHandler
@ResponseBody public Object processGlobalExceptions(HttpServletRequest request,HttpServletResponse httpResponse, HandlerMethod handlerMethod, Exception e ) throws Exception { if (e instanceof ServiceLogicalException) { if(RKWebUtil.isAjax(request)){ RKWebUtil.respJSON(httpResponse, ajaxError(e.getMessage())); return null; }else{ httpResponse.setHeader("rk_header_msg", java.net.URLEncoder.encode(e.getMessage(), "UTF-8")); RKWebUtil.redirect(request, httpResponse, RkConst.error_page.error_page_300); return null; } } else if (e instanceof UnauthorizedException||e instanceof UnauthenticatedException) {//未授权 StringBuffer msg=new StringBuffer().append("您没有该操作权限"); if(RKWebUtil.isAjax(request)){ RKWebUtil.respJSON(httpResponse, ajaxError(defaultAuthError+","+msg)); return null; }else{ RKWebUtil.redirect(request, httpResponse, RkConst.error_page.error_page_401); return null; } }else if(e instanceof Exception){ e.printStackTrace(); if(RKWebUtil.isAjax(request)){ RKWebUtil.respJSON(httpResponse, ajaxError(defaultServerError )); return null; }else{ RKWebUtil.redirect(request, httpResponse, RkConst.error_page.error_page_500); return null; } } return null; }采用spring注解对异常进行统一拦截处理
在dao层有个异常抛出
此时,在任何时候都不要对该异常进行捕获,否则拦截将不会生效
由此猜测,异常只要捕获了,后续就不会再次出现
经过几次百度好像确实是这样的,异常上理解又了解一点点