java异常监控和处理

最近在开发三方服务调用的预警机制,涉及异常的捕获和处理。

1、本次使用的异常是非声明性异常,即在方法中throw的异常。

开发人员知道在某段代码中可能会产生某类异常,对可能产生异常的代码用try包裹,并用catch捕获。

try{
      } 
catch (SocketTimeoutException | ConnectTimeoutException e) {
            throw new LingxiTimeOutException();
        }

 本案例抛出的异常:throw new LingxiTimeOutException();

这是我自定义的异常。

本方法把异常抛出后,可以在最外层的方法里将他捕获。

catch (LingxiTimeOutException e) {

            //业务处理。。
            LOGGER.error("返回超时", e);}

 这样,在方法最外层可以捕获自定义的异常,并做相应的业务处理。

这种异常捕获是针对方法的,针对整个项目,也需要有个全局的异常,能够兜底整个项目出现的异常。

spring提供了全局异常配置办法:

HandlerExceptionResolver。

1.定义一个类实现HandlerExceptionResolver接口

public class GlobalExceptionResolver implements HandlerExceptionResolver

2、实现resolveException方法。

3、在spring-mvc里添加异常bean。


   

你可能感兴趣的:(杭研项目总结)