2 回答

TA貢獻1995條經驗 獲得超2個贊
最后,是通過增加了一個HandlerInterceptor,這個方法可行,但是處理異常的地方就變成了兩處,另一個是controller層異常的統一處理,總覺得不是太好的方案。
@Component
public class PreControllerExceptionIntercep implements HandlerInterceptor {
private static final Logger log = LoggerFactory.getLogger(PreControllerExceptionIntercep.class);
@Override
public void afterCompletion(HttpServletRequest request , HttpServletResponse response,Object handler,Exception ex) throws Exception{
if(ex instanceof UnauthenticatedException){
log.info("the access isn't valid");
PackVo packVo = new PackVo();
packVo.setSuccess(false);
packVo.addMsg(BizExceptionCode.NO_PERMISSION_EXCEPTION,"");
String jsonPack = JSON.toJSONString(packVo);
response.setContentType("application/json;charset=UTF-8");
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
PrintWriter out = response.getWriter();
out.print(jsonPack);
out.flush();
out.close();
}
}
- 2 回答
- 0 關注
- 1949 瀏覽
添加回答
舉報