第七章_敏捷调试_36 报告所有的异常

36 报告所有的异常

1. 问题是什么?

从事任何编程工作,都需要考虑在正常情况下,软件要做什么?不过更应该想一想,当出现问题——也就是事情没有按计划进行时,会发生什么?

夫子曰:敏捷调试的基础是什么?换言之,我们在分离出问题之后,下一步时干什么?

收集问题发生时的信息,问题发生时,被调用接口反馈的异常信息,就是一个很好的信息收集途径。这也要求我们在设计接口时,一定要定义恰当的异常返回值。

2. 恶魔的主意

不要让程序的调用者看到那些奇怪的异常。处理它们是你的责任。把你调用的一切都包起来,然后发送自己定义的异常——或者干脆自己解决掉。

夫子曰:这真是”恶魔“出的主意,有异常时,欺上瞒下,不让接口的调用者了解发生的情况,出现情况后,怎么去处理呢?

3. 天使的主意

处理或是向上传播所有的异常

心里感受

当出现问题时,心里知道能够得到抛出的异常。而且没有空的异常处理办法

4. 有没有天使不在的时候?

  • 决定有谁来负责处理异常,是设计工作的一部分
  • 不是所有的问题都应该抛出异常
  • 报告的异常应该在代码的上下文中有实际意义
  • 如果代码运行时,会记录日志。若捕捉或抛出异常时,要记录日志信息
  • 检查异常处理起来很麻烦。没人愿意调用抛出31种不同异常的方法,这是设计上的问题,要解决掉。
  • 要传播不能处理的异常

5. 总结

夫子曰:被调用者发生异常后,要告诉用户发生了什么!

被调用者执行出现异常后,若可以处理,恢复到正常,则自己处理;若不能处理,则保存现场信息,向用户,也就是调用者反馈异常信息。但也不能传递过多异常,如书种所述,调用一个可以反馈30多个异常的接口,岂不是梦魇?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值