百科问答小站 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里一个线程调用了Thread.interrupt()到底意味着什么? 
  如何用最简短的二进制代码表示一张19*19的围棋棋盘的情况? 
  对容器类做改变的设计是否存在天生的错误? 
  一个浮点数到底是怎么被转换为字符串输出?一个浮点数不精确,那么其输出的值是怎么被确定的呢? 
  如果鸿蒙系统成功,会复兴C/C++吗? 
  a += a *= a; 为什么在C++和Java算出了不同结果? 
  虚幻4这句代码意义何在? 
  为什么说 Java 比 C++ 安全? 
  有哪些值得学习的国内 c++ 开源项目? 
  c++怎么在1到n这些数中随机产生k(k<n)个?当然,k个数互不相等。有什么比较好的写法吗? 

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





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