百科问答小站 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语言程序在一台电脑上可以运行,到另外一台就运行出问题是什么原因? 
  这个代码int函数无返回值且开-O2,for循环会无限循环,是什么原因? 
  为什么现在招聘程序员大多要求 Java / C / C++ 技能,而 C# / .NET 不受青睐? 
  C++ 父类对象赋值给子类对象是未定义行为么? 
  有哪些见过的时间复杂度为无限大的算法? 
  学C#后还有必要学C语言吗? 
  c#中没有友元类那么这种设计是否不太合理,如何修改才能得到更好的方案? 
  Java设计出checked exception有必要吗? 
  如何理解ByteCode、IL、汇编等底层语言与上层语言的对应关系? 
  为什么 Go 语言如此不受待见? 

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





© 2025-04-16 - tinynew.org. All Rights Reserved.
© 2025-04-16 - tinynew.org. 保留所有权利