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




  

相关话题

  为什么编程语言有这么多种类?为什么不统一成一种语言呢? 
  现阶段的编程语言都有什么缺陷? 
  为什么最近十年发明的编程语言都喜欢先变量名后类型声明这种变量声明方式? 
  为什么AI算法工程师要求C++? 
  libc 和 libstdc++ 一定是 backward compatible 的吗? 
  关于阿里巴巴2011年一道C++笔试题(struct和class)的疑问? 
  2022年学C++开发好比49年入国军,没什么公司在用C++了? 
  为什么读取连续内存没有比不连续的效率更高? 
  Node.js、Scala、Clojure 等声称适合高并发的语言,分别具体适用于什么情景,何种任务? 
  如何评价《阿里巴巴JAVA开发手册》完美版,终极版,纪念版? 

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





© 2024-05-20 - tinynew.org. All Rights Reserved.
© 2024-05-20 - tinynew.org. 保留所有权利