Exception处理

1 原则


   如果被调用方显示的向上Throw了Exception , 那么调用方【必须显示地处理】Exception(向上Throw或者Try...Catch);


  


2 避免异常堆栈信息被吞掉


   如果被调用方Try...Catch了Exception,但没有打印Exception堆栈信息;而此时调用方也无法获得Exception的信息,那么【Exception堆栈就被吞掉了】。


  

 

3 被调用方只要CatchException 就可以随时打印异常的堆栈信息,但是调用方想拿到异常的信息一般有如下两种方式:


  方式一、被调用方、调用方都需要处理异常

      此时,需要被调用方catch住Exception并处理,然后在catch模块里面再向上Throw这个Exception对象e;然后调用方再catch住这个Exception对象e,并处理。

 

  


  方式二、被调用方不需要处理异常、调用方需要处理异常

       此时,被调用方不需catch Exception,只需要向上Throw Exception即可,调用方直接catch Exception即可。


  


4 被调用方异常处理后返回值处理


  

5 总结


  1、如果“被调用方”和“调用方”在同一个项目中(并且部署在同一台机器上),那么建议一方打印Exception即可(避免打印重复的日志)。

  2、如果“被调用方”和“调用方”在同的项目中,或者部署在不通的机器上(例如分布式项目的api&service),那么建议双方都需要打印异常,方法如下:

  首先,被调用方:首先,要在方法声明上显示地Throw Exception,其次要try...catchException 并在catch里面log.error(e.getMessage,e);和手动向上跑出异常throw new Exception(e);

  其次,调用方  :try...cacheException 并log.error(e.getMessage,e);

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值