百科问答小站 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




  

相关话题

  LeetCode上 C++ 官方题解为什么有很多没有写delete,不会内存泄漏么?面试时也可以么? 
  如何确定自己是否适合做程序员? 
  为什么c/cpp语言的函数好像没有按照驼峰命名法呢? 
  JavaScript(V8,Node) 的开发效率比 Java(JVM,Vert.x) 高在哪里? 
  网上说 Java 的性能已经达到甚至超过 C++,是真的吗? 
  将文件编译成某种代码,打印到A4纸上,这种想法是否可行? 
  C/C++ 里指针声明为什么通常不写成 int* ptr 而通常写成 int *ptr ? 
  为什么 Java 份额那么高,在知乎的存在感却不如 Python? 
  觉得 SQL 太难用于是自己编了个类 SQL 语言,不知道有没有人想过类似的事情? 
  我的一位老师说,Java 适用于大型软件而 C# 适用中小型软件。这是真的么? 

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





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