Exception 谁发明了投掷/尝试/接住[/finally]类错误处理?

Exception 谁发明了投掷/尝试/接住[/finally]类错误处理?,exception,exception-handling,language-features,theory,language-design,Exception,Exception Handling,Language Features,Theory,Language Design,我的问题更多的是历史性的,而不是实践性的: 是谁发明的 哪种语言首先使用它(以及使用到何种程度) 最初的想法是什么,基本的概念是什么(现在哪些实际问题必须解决,欢迎发表论文) 是当前异常处理的祖先吗 今天的通用Lisp条件系统是一个相对较新的系统。该设计基于以前的系统,但直到20世纪80年代末,也就是20世纪80年代前后,才作为公共Lisp语言的一部分被包括在内 我相信书中的条件一章对设计的历史和背景有相当多的评论,并参考了相关研究和类似系统的先前实现。VAX CPU有一个基于堆栈的异常处理系统

我的问题更多的是历史性的,而不是实践性的:

  • 是谁发明的
  • 哪种语言首先使用它(以及使用到何种程度)
  • 最初的想法是什么,基本的概念是什么(现在哪些实际问题必须解决,欢迎发表论文)
  • 是当前异常处理的祖先吗

  • 今天的通用Lisp条件系统是一个相对较新的系统。该设计基于以前的系统,但直到20世纪80年代末,也就是20世纪80年代前后,才作为公共Lisp语言的一部分被包括在内


    我相信书中的条件一章对设计的历史和背景有相当多的评论,并参考了相关研究和类似系统的先前实现。

    VAX CPU有一个基于堆栈的异常处理系统。在每个调用帧中,分配一个32位单元并用零填充。如果被调用的子例程想要处理异常,它所要做的就是在该单元格中填入异常处理例程的地址

    发生异常时,将进行堆栈搜索。这很容易,因为堆栈框架都链接在一起。具有非零项的第一个堆栈帧将导致堆栈展开到该点,并且将调用异常处理程序


    我记得这是针对高级语言的处理器的功能之一,但我不知道有哪种高级语言利用了这一功能。我相信它是由库代码使用的,而库代码很可能是用汇编语言编写的。

    它不是回到了C语言中的函数吗?Richie、Kernighan等人?

    以某种重新包装的方式,这本书主要是对“谢谢”的复制!但我也希望能回答问题3和4。