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

Dip*_*hta 8 compiler-construction exception

我想深入了解编程语言如何实现异常处理以及它在内部的工作原理.我试着在下面的许多子问题中对此进行说明.

  1. 编程语言用于实现try {} catch {}块(引擎盖下)的机制是什么?
  2. 堆栈放卷究竟如何在里面工作?
  3. 不同语言(如C++和Java)之间try {}/catch {}实现之间的主要区别是什么?它们提供的差异是显着的还是相同的?
  4. C中的堆栈倒带的setjump/longjump方法类似于try/throw/catch块吗?
  5. 为什么人们说"堆栈展开"代价高昂?
  6. 究竟什么是SEH(结构化异常处理?)

aku*_*uhn 3

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

  • 不幸的是,该链接现在已失效(由“403”失效)。尽管如此,_webarchive_知道它的东西:https://web.archive.org/web/20110827072934/https://gforge.inria.fr/frs/download.php/26600/PBE2-Exceptions-2010-03-02.pdf (2认同)