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




  

相关话题

  请问数学的函数和编程语言的函数有什么区别呢? 
  在C#中,如何实现跟native dll 中途的线程间通信? 
  为何 Boost 的 Asio 要使用 Proactor 模式实现? 
  为什么大部分高校还在只教C/C++/Java,而不教更加强大的Rust/Go/Scala? 
  python中的lambda 和java中的lambda有什么不同? 
  C++20 即将到来的 coroutine 能否与 Golang 的 goroutine 媲美? 
  有谁是单纯地喜欢编程吗? 
  如果让你来重新设计(或者改造)C++,你打算怎么设计或者修改? 
  为了软件更符合开源风格,c/cpp 代码缩进应该使用4空格还是2空格? 
  做32位/64位跨版本编程,有什么需要注意的么? 

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





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