加入收藏 | 设为首页 | 会员中心 | 我要投稿 伊春站长网 (https://www.0458zz.com/)- 管理运维、图像技术、数据标注、智能营销、数据计算!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

可能找到物联网的地方

发布时间:2021-02-19 14:44:45 所属栏目:外闻 来源:互联网
导读:有人认为断言仅是一种调试工具,一旦代码发布后就应该关闭断言,因为断言会增加一些开销(微小的 CPU 时间)。所以在很多工程实践中断言确实是关闭的,也有不少大 V 有过这样的建议。Dndrew Hunt 和 David Thomas 反对这样的说法,在他们书里有一个比喻我认为

有人认为断言仅是一种调试工具,一旦代码发布后就应该关闭断言,因为断言会增加一些开销(微小的 CPU 时间)。所以在很多工程实践中断言确实是关闭的,也有不少大 V 有过这样的建议。Dndrew Hunt 和 David Thomas 反对这样的说法,在他们书里有一个比喻我认为很形象。

在你把程序交付使用时关闭断言就像是因为你曾经成功过,就不用保护网取走钢丝。

——《The pragmatic Programmer》

处理错误时的关键选择

防御式编程会预设错误处理。

在错误发生后的后续流程上通常会有两种选择,终止程序和继续运行。

  • 终止程序,如果出现了非常严重的错误,那最好终止程序或让用户重启程序。比如,银行的 ATM 机出现了错误,那就关闭设备,以防止取 100 块吐出 10000 块的悲剧发生。
  • 继续运行,通常也是有两种选择,本地处理和抛出错误。本地处理通常会使用默认值的方式处理,抛出错误会以异常或者错误码的形式返回。

在处理错误的时候我们还面临着另外一种选择,正确性和健壮性的选择。

  • 正确性,选择正确性意味着结果永远是正确的,如果出错,宁愿不给出结果也不要给定一个不准确的值。比如用户资产类的业务。
  • 健壮性,健壮性意味着通过一些措施,保证软件能够正常运行下去,即使有时候会有一些不准确的值出现。比如产品介绍超过页面展示范围

无论是使用卫语、断言还是预设错误处理都是在用抱着对程序世界的敬畏态度在小心的驾驶,时刻提防着他人更提防着自己。

北京第三区交通委提醒您,道路千万条,安全第一条,行车不规范,亲人两行泪。

正确使用异常

检查每一个可能的错误是一种良好的实践,特别是那些意料之外的错误。

非常棒的是,Java 为我们提供了异常机制。如果充分发挥异常的优点,可以提高程序的可读性、可靠性和可维护性,但如果使用不当,异常带来的负面影响也是非常值得我们注意并避免的。

只在异常情况下使用异常

在《The pragmatic Programmer》和《Effective Java》中作者都有这样的观点。

我认为这有两重意思。一重意思如何处理识别异常情况并处理他,另一重意思是只在异常情况下使用异常流程。

那什么是异常情况,又该如何处理?这个问题无法在代码模式上给出标准的答案,完全看实际情况,要对每一个错误了然于胸并检查每一个可能发生的错误,并区分错误和异常。

即便同样是打开文件操作,读取"/etc/passwd"和读取一个用户上传的文件,同样是 FileNotFoundException,如何处理完全取决于实际情况,Surprise!前者直接读取文件出现异常直接抛出让程序尽早崩溃,而后者应该先判断文件是否存在,如果存在但出现了 FileNotFoundException 则再抛出。



(编辑:伊春站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读