你的位置:首页 > 软件开发 > ASP.net > 小酌重构系列[20]用条件判断代替异常

小酌重构系列[20]用条件判断代替异常

发布时间:2016-05-21 06:00:06
概述 异常处理的关键在于何时处理异常以及如何使用异常,有些开发者会觉得try catch的处理和使用难以把握,于是他们秉承着“您可错杀一千,不可放过一个”的想法,给所有的方法添加try catch。 这种方式会对应用程序造成什么影响吗? 从用户角度出发,用户确实难以察觉到什么,应 ...

概述

异常处理的关键在于何时处理异常以及如何使用异常,有些开发者会觉得try catch的处理和使用难以把握,于是他们秉承着“您可错杀一千,不可放过一个”的想法,给所有的方法添加try catch。

这种方式会对应用程序造成什么影响吗?

从用户角度出发,用户确实难以察觉到什么,应用程序运行正常,使用的体验好像也没什么差别。

从程序角度出发,大量的try catch会降低代码的可读性,只有在异常触发时才会对程序的性能造成较大的影响。

这两种角度有对错吗?

二者都没有错,第一种角度甚至要远远高于第二种角度。

对于程序员来说,写程序开发产品的最终目的不是为了在技术上吹毛求疵,而是为了满足市场和用户的业务需求,用户并不关心产品的内部实现——用户觉得好的产品,是真正的好产品。

我们不必纠结于这两种角度的处理方式,适合自己的才是最佳的。

但是一些场景下确实不宜使用try catch

  1. 流程控制语句:流程控制有它本身的逻辑,我们应该用判断来规避try catch语句块的使用
  2. 循环控制语句:一次catch对性能的影响是较小的,但在循环中却可以积少成多,因此可能会产生较大的性能损失。

本文的主题“用条件判断代替异常”是针对场景1的,当使用try catch来控制程序流程时,如果程序中不存在“危险”代码(例如:类型转换、建立连接等),就没有必要使用try catch,我们可以直接使用条件判断来控制程序流程。

异常不发生的时候,只是给程序套了一层try{}语句块,对性能的影响微乎其微。

原标题:小酌重构系列[20]用条件判断代替异常

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录