百科问答小站 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语言这样的编译型语言能否在不同CPU上,通过相同标准库的编译器,用源代码实现跨平台? 
  C++为何不允许在函数中直接传递数组? 
  C++,为什么有了include<iostream>,还需要using namespace std呢? 
  为什么人们会崇拜一个编程语言? 
  Qt出最近版本了,支持全平台开发,而我以前没接触过,一直java,现在如何选择呢? 
  对程序员来说,你认为最键盘上没用的几个键是哪几个? 
  为什么安装不了java?这是啥问题? 
  Build 2015上微软宣布Windows 10支持Objective-C与Java编写的应用,这对C#与Windows自身有什么长远影响? 
  学习编程必须要会英语吗? 

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





© 2025-03-31 - tinynew.org. All Rights Reserved.
© 2025-03-31 - tinynew.org. 保留所有权利