我想深入了解编程语言是如何实现异常处理的,以及它在内部是如何工作的。我试图在下面的子问题中表达这一点。
- 编程语言实现try的机制是什么{} catch{}块(在引擎盖下)?
- 堆栈展开到底是如何工作的?
- 不同语言(如c++和Java)之间的try {}/catch{}实现之间的关键区别是什么?它们提供的服务有很大的不同还是相同?
- 是setjump/跳远方法堆栈倒卷在C类似于try/throw/catch块?
- 为什么人们说"堆栈unwind"代价高昂? 什么是SEH(结构化异常处理)
这是异常处理如何工作的一个很好的描述,https://gforge.inria.fr/frs/download.php/26600/PBE2-Exceptions-2010-03-02.pdf