作者:陈树义来源:https://www.cnblogs.com/chanshuyi/p/is_try_catch_ineffective.html

前几天在 code review 时发现有一段代码中存在滥用try catch的现象。其实这种行为我们也许都经历过,刚参加工作想尽量避免出现崩溃问题,因此在很多地方都想着 try catch一下。

但实际上这种习惯不仅会让代码很难看,更会影响代码的运行性能。有些人会觉得,不就是一个 try catch 么,怎么会影响性能啊。那就让我们来测试看看吧。

实验

首先,我们看看没有try-catch情况下,进行100万次加法的耗时:

经过5次统计,其平均耗时为:1816048纳秒,即1.8毫秒。

接着,我们来看看在有try-catch情况下,进行100万次加法的耗时:

经过5次统计,其平均耗时为:1928394纳秒,即1.9毫秒。

我们再来看看,如果try-catch抛出异常,进行100万次加法的耗时:

经过5次统计,其平均耗时为:780950471纳秒,即780毫秒。

经过上面三次统计,我们可以看到在没有try catch时,耗时1.8毫秒。在有try catch 但是没有抛出异常,耗时1.9毫秒。在有抛出异常,耗时780毫秒。我们能得出一个结论:如果try catch没有抛出异常,那么其对性能几乎没有影响。但如果抛出异常,那对程序将造成几百倍的性能影响。

结论

虽然在没有抛出异常时,try catch几乎没有性能影响。但是一旦抛出异常,那么其对性能的影响将是巨大的。因此我们在实际编程的时候,需要特别注意try catch语句的使用,不在没有必要的地方过多使用。

union all会影响性能吗_Java 中的 try catch 影响性能吗?相关推荐

  1. java try 性能损耗_Java 中的 try catch 影响性能吗?

    前几天在 code review 时发现有一段代码中存在滥用try catch的现象.其实这种行为我们也许都经历过,刚参加工作想尽量避免出现崩溃问题,因此在很多地方都想着 try catch一下. 但 ...

  2. hashset java 键值对_Java中的各个容器的性能对比

    java中个个容器的属性,性能,参数对比: Java容器的性能及属性的对比 List:Vector,ArrayList,LinkedList Vector:内部是数组数据结构,可以理解为加锁的Arra ...

  3. java try的用法_Java中try、catch的使用方法

    Java中有两种处理异常的方式,分别是用throws抛出异常.用try.catch捕获异常. try-catch 在Java try-catch语句的语法格式: try{ //代码块 }catch(E ...

  4. java 正则表达式可以改变么_Java中慎用正则表达式!代码性能影响?

    1.什么是正则表达式 简单来说,就是使用一些特定的元字符来检索.匹配.替换符合规则的字符串. 2.正则表达式引擎 正则表达式就是一串符号,程序需要去分析它,并且建立一个语法树,然后根据这个树执行程序. ...

  5. oracle 频繁操作删除对索引的影响吗,清除Oracle中无用索引 改善DML性能

    DML性能低下,其中最严重的原因之一是无用索引的存在.所有SQL的插入,更新和删除操作在它们需要在每一行数据被改变时修改大量索引的时候会变得更慢. 许多Oracle 管理人员只要看见在一个SQL 查询 ...

  6. java c 性能比较_java 中ArrayList与LinkedList性能比较

    java 中ArrayList与LinkedList性能比较 今天看一框架的代码,看到有些 可以使用ArrayList的地方 使用的是 LinkedList,用到的情景是在一个循环里面进行顺序的插入操 ...

  7. java中减法命令_java中减法和乘法的性能比较

    #1 :32 #2 :-32 #3 :-32 #4 * (-1) running time is:115391 #5 0- running time is:22911 性能约好80% 在android ...

  8. java中catch的作用_Java中的try catch的作用

    http://wenwen.soso.com/z/q175197035.htm try{--}里面是一些你觉得可能会出问题的代码,catch里就是你觉得会有什么问题,如果出的问题正好是你catch里说 ...

  9. iar代码优化影响运行速度吗_Java 性能优化:教你提高代码运行的效率

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:五月的仓颉 cnblogs.com/xrq730/p/486 ...

最新文章

  1. pywebio 之词云图
  2. 64位浮点数_JavaScript 浮点数运算的精度问题
  3. caffe 中的一些参数介绍
  4. 大厂Java岗面试心得记录
  5. Python深入06 Python的内存管理
  6. 政府数据泄漏频现 美国能源部也未幸免
  7. Tricks(三十五)—— 内积的极简实现
  8. paip.DISCUZ道具开发指南-attilax总结-
  9. Hugging Face Course-Introduction学习小记 (part2)
  10. 【转】强大的在线书库
  11. 0130更新:完美wine QQ2011正式版(5074)
  12. Photoshop - 高反差保留
  13. 传感器自学笔记第八章——DHT11温湿度传感器(附带自己写的很好用的51单片机DHT11代码模板,参数列表只有一个字符数组指针)
  14. 非零基础自学Golang 第3章 基本变量与类型 3.1 Go语言变量
  15. phpstudy打不开localhost【已解决】
  16. 在matlab内绘制函数图像
  17. 【Egret优化分享】白鹭引擎王泽:重度H5游戏性能优化技巧
  18. 网上购车平台蛋蛋订车上私户兴起,汽车之家青少年嘉年华正式开幕
  19. C语言float是什么类型,float是什么数据类型?
  20. 未来的火控计算机,光电火控系统在未来数字化炮兵中的应用

热门文章

  1. 如何恢复默认域策略和默认域控制器策略
  2. [轉]MS SQL Server启用AWE用查看内存使用情况
  3. CentOS 6下编译安装Nginx
  4. 成都服务器怎么租用最便宜—Vecloud
  5. 软件定义的网络体系结构是否使用网段路由?—Vecloud微云
  6. 在CentOS7.2上部署Postgres-XL分布式数据库
  7. laravel中empty(),is_null() 以及isEmpty()
  8. Text-CNN-文本分类-keras
  9. 整理前端css/js/jq常见问题及解决方法(3)
  10. HTTP 三次握手  建立连接 和  四次握手断开连接