百科问答小站 logo
百科问答小站 font logo



运行时异常处理程序是如何实现的? 第1页

  

user avatar   windoze 网友的相关建议: 
      

如果题主一定要用语法糖的方式理解try-catch,可以参考Rust里面try!和Result。

简单说就是把所有函数的返回值变成(return-type | error-type),然后把所有函数调用变成一个if is-error then return error else do-real-thing

当然真正支持try-catch的编译器会用优化的方式,比如说一个try-catch链中当前exception只会有一个(如果多于一个就包成一个),所以可以专门开个地方给它,每thread一个就行,这样一来可以把stack省出来给真正的代码,而且可以兼容其它语言的abi




  

相关话题

  java中,堆的运行速度为什么比栈慢? 
  为什么 Java 会有 JVM,其它语言怎么没有对应的 VM? 
  C++ 允许「我们都是人,所以我可以把你私有的眼睛借来随便玩,再还给你」,这难道是一种设计上的妥协? 
  C++中,auto关键字有哪些乱用的情况?平时使用有哪些坑? 
  为什么说 Java 比 C / C++ 慢? 
  认为 Java 和 .NET 是 Web 主流的人怎样看待国内 90% 网站均为 PHP 开发的事实? 
  曾经作为程序员的你为什么不当程序员了?现在在做什么? 
  java switch 不加 break 继续执行 下一个case(不用匹配条件) 这个设计是因为什么? 
  求BAT代码或C语言代码如何自动复制剪切板文本并分行保存一个txt? 
  感觉 C++ 很简单,但为何这么多劝退的? 

前一个讨论
如果飞机的黑盒子设计的是可以不被损坏的经受得起坠机的,为啥整架飞机不能这么做呢?
下一个讨论
SQL Server 相比 MySQL 有何优势?





© 2025-05-27 - tinynew.org. All Rights Reserved.
© 2025-05-27 - tinynew.org. 保留所有权利