百科问答小站 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 的性能已经达到甚至超过 C++,是真的吗? 
  ”返回在函数内malloc的内存是安全的,但是容易造成问题,最好的做法是返回传入的指针。“怎么理解? 
  学java是不是只能做网页开发? 
  C++ 的 switch 为什么不自动加 break? 
  现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢? 
  为什么培训机构很少有培训 C 语言的,大部分都是 Java,C# 什么的? 
  为什么存在着size_t, LPCSTR, wchar_t等别名? 
  单精度浮点数中的「单」和「浮点」是什么意思? 
  Java 和 C# 最大的不同是什么? 
  有哪些话一听就知道一个程序员是个水货? 

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





© 2024-09-19 - tinynew.org. All Rights Reserved.
© 2024-09-19 - tinynew.org. 保留所有权利