异常处理是如何通过编程语言实现的



我想深入了解编程语言是如何实现异常处理的,以及它在内部是如何工作的。我试图在下面的子问题中表达这一点。

  1. 编程语言实现try的机制是什么{} catch{}块(在引擎盖下)?
  2. 堆栈展开到底是如何工作的?
  3. 不同语言(如c++和Java)之间的try {}/catch{}实现之间的关键区别是什么?它们提供的服务有很大的不同还是相同?
  4. 是setjump/跳远方法堆栈倒卷在C类似于try/throw/catch块?
  5. 为什么人们说"堆栈unwind"代价高昂?
  6. 什么是SEH(结构化异常处理)

这是异常处理如何工作的一个很好的描述,https://gforge.inria.fr/frs/download.php/26600/PBE2-Exceptions-2010-03-02.pdf

最新更新