Osheep

时光不回头,当下最重要。

SpringMVC 统一异常处理入口

在一个冰冷幽暗的夜晚上,我正思考的十分重要的人生问题,这周末该去那里happy好呢?是宅在家里好呢,或者宅在家里好呢,还是宅在家里好呢?这时,万年隐身的QQ竟然浮起浅色聊天框,我去!不得了,居然是女神主动联系我,女神一定是因为我俊朗的五官,171的模特身材而深深地迷恋上我了,呵呵呵呵呵呵。

“诶,阳X,你在干嘛呢?”“没啊,在思考人生。”   

难道这是要约我的节奏吗?在妹子前必须保持冷静。

“那个投资页面老是出现等待中的问题,有处理好吗?”

。。。。。。。。。没事!虽然跟我预想有点出入,但女神这是在考验我!

回头一想,本屌在搬砖时处处留下logger.error()的日志记录,于是轻车熟路的连接上了Aliyun。

飞快的敲着键盘,把今天的日志都下载下来了。

。。。

没有这个模块的异常日志,这是逗我吗!

于是想起,这是肖XX写的移动模块,这个异常记录完全没有,我又不能随意更改,这该如何是好.

在百度基友的帮助下,为系统添上了“全局异常处理”(AOP),又是把女神的一招好牌,嘎嘎。

  1. /**  
  2.  * 全局异常控制,记录日志  
  3.  * @param ex  
  4.  * @param request  
  5.  * @return  
  6.  */  
  7. @ExceptionHandler(RuntimeException.class)   
  8. public String operateExp(RuntimeException ex,HttpServletRequest request){   
  9.     CommonUtils.printHTTP(request);   
  10.     logger.error(ex.getMessage(),ex);   
  11.     logger.info(“************* —— 异常信息已记录(”+DateUtils.getTimeNow()+“) ——- ***********”);   
  12.     request.setAttribute(“errorTips”, ex.getMessage());   
  13.     return “wap/error”;   
  14. }  

《SpringMVC 统一异常处理入口》

完成好这个之后,感觉女神快到自己的怀抱了。

解读:

@ExceptionHandler(RuntimeException.class)  

当这个Controller中任何一个方法发生异常,一定会被这个方法拦截到。然后,输出日志。封装Map并返回,页面上得到status为false。就这么简单。

。。。

好了,搞定,下次在系统上再出现异常,我就“大有可为”了,嘎嘎…

点赞