try catch会影响性能么

前言

今天 code review 时发现某个同事的代码中存在滥用try catch的现象。其实这种行为我们也许都经历过,刚参加工作想尽量避免出现崩溃问题,因此不可避免得想在所有可能抛出异常的地方都try catch一下。

当然,这种行为肯定是不可取的。如果这样,那还不如所有逻辑都包在大大的try catch里好了。代码的是否具有高健壮性必然是代码是否高效优雅决定的。

当然,这个也引起我的思考,try catch会影响性能么?

结论

try catch不会影响性能。——严格意义上说是微乎其微。

这个结论的确很难让人接受,最起码与我的预估不大一样。

按照我的想法,当代码中出现的各种特性越多,轻量点的如enum,重一点的如“反射”,必然会增加更多的开销。

然而,从结果看,在没有抛出异常时,try catch的影响跟添加了一个 if else是同一个量级的。也就是说,我们完全可以忽视try catch耗费的那点性能。

网上已经有很多人总结了结论,我也就不重复造轮子了。此结论经过多方验证,应该无误,如有不同意见,请留言评论:

1、异常如果没发生,也就不会去查表,也就是说你写不写try catch 也就是有没有这 个异常表的问题,如果没有发生异常,写try catch对性能是木有消耗的,所以不会让程序跑得更慢。

2、try 的范围大小其实就是异常表中两个值(开始地址和结束地址)的差异而已,也是不会影响性能的。

推荐阅读

偷懒是程序员的美德。我也就不重复造轮子了。
Java上的try catch并不影响性能

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,802评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,903评论 25 709
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,146评论 0 62
  • 我还未收拾好包袱 就被牵扯着踏上了这征途 有人说青春是辆永不回头的列车 那我充其量算是个,懵懂无知的 乘客,随着人...
    喜感哈皮阅读 122评论 0 0
  • 从下午四点到夜晚八点,连续四个小时大脑高速运转,梳理政务工作,文书写作,政策解读。作为一名理科生,这些做起...
    小池W阅读 1,087评论 0 1