当前位置: 首页 > news >正文

【M15】了解异常处理(exception handling)的成本

1、为了在运行期处理异常,程序必须做大量额外的工作。比如,即使抛出异常,也必须保证离开作用域的栈上对象执行析构方法。因此,必须记录try语句的进入点和离开点,记录catch语句能够处理的异常等。这就意味着,程序目标码变大,执行速度慢。

2、即使从未使用任何异常处理,还是必须要付出最低代价,付出一些空间,放置某些数据结构,付出一些时间,保持数据结构的正确性。

3、即使自己的程序没有使用throw,try,catch语句,使用的其他程序库可能有异常处理,因此也要付出代价。

4、对于try语句,没有异常抛出的情况下,代码膨胀5%-10%,速度也下降这个数。

5、如果抛出异常,影响很大,速度可能会比正常情况下慢3个数量级。但是,抛出异常是罕见的,因此可以接受。这也就意味着,在相对正常的情况下,不要抛出异常。

6、考虑到异常对效率的影响,因此,在非用不可的情况下,才使用try语句。在确实是个异常的情况下,才抛出异常。

相关文章:

  • 【代码】模板实现双向链表的去重、拼接、合并、排序
  • Netflix Media Database - 架构设计和实现
  • 又拍云引领云CDN加速 或成互联网刚性需求
  • Genymotion常见问题整合与解决方案(转)
  • 用webmagic实现一个java爬虫小项目
  • 化工文件下载地址
  • 搭建K8S高可用集群(二进制方式)
  • 20160309作业
  • Git 分支 - 分支管理
  • 修改linux的最大文件句柄数限制
  • DIY福音:Firefox菜单及右键菜单ID大全
  • 新光大ArtPark9亮相 以“艺术”再造生活方式
  • 四则运算02
  • 介绍面向系统管理员的7个CI/CD工具
  • Android 数据存储——上
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Angularjs之国际化
  • Bytom交易说明(账户管理模式)
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • docker容器内的网络抓包
  • JS学习笔记——闭包
  • MySQL的数据类型
  • React-Native - 收藏集 - 掘金
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • web标准化(下)
  • 电商搜索引擎的架构设计和性能优化
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 跨域
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 两列自适应布局方案整理
  • 如何用vue打造一个移动端音乐播放器
  • 实战|智能家居行业移动应用性能分析
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • (0)Nginx 功能特性
  • (3)llvm ir转换过程
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (三)Honghu Cloud云架构一定时调度平台
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十一)c52学习之旅-动态数码管
  • (转) 深度模型优化性能 调参
  • (转)树状数组
  • .CSS-hover 的解释
  • .net Application的目录
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .Net语言中的StringBuilder:入门到精通
  • /usr/bin/env: node: No such file or directory
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [20160807][系统设计的三次迭代]
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...