异常和异常处理来自何处?
我喜欢.NET使用它的方式,喜欢C ++支持它的方式(但是不幸的是,库使用返回代码或用C编写)。我知道它在所有新语言中的标准都是多少,但是谁首先设计了它,或者它是从哪里来的呢?
C ++是使用它的第一语言吗?我不知道其他年龄更大的人。
异常和异常处理来自何处?
我喜欢.NET使用它的方式,喜欢C ++支持它的方式(但是不幸的是,库使用返回代码或用C编写)。我知道它在所有新语言中的标准都是多少,但是谁首先设计了它,或者它是从哪里来的呢?
C ++是使用它的第一语言吗?我不知道其他年龄更大的人。
Answers:
引发和捕获异常已经有一段时间了。这个网站说例外是在PL / I中引入的:http : //www.math.grin.edu/~rebelsky/Courses/CS302/98S/Outlines/outline.02.html
根据此页面,它是1967年的(包括详尽的但不详尽的计算机语言和功能图表):http : //community.borland.com/article/0,1410,22741,00.html
许多语言都采用了这种技术-ADA,ALGOL,FORTRAN,ML [...]
从这里引用。
Wikipedia更详细地介绍了PL / 1中的异常处理。该页面还提到PL / 1是第一页。当然,这不是科学证明:-)
至于亲自设计PL / 1的人,本文没有提及任何名称,仅提及IBM的各个委员会。
Hof,Mössenböck和Pirkelbauer(在其1997年的论文《使用元编程的零开销异常处理》)中肯定了异常的概念是在70年代提出的,指的是John B. Goodenough的1975年“ 异常处理:问题”以及《美国通信杂志》上的拟议注释文件。 ACM。在其中,他将现代异常处理与注册回调的一般思想相结合,并且他提出的表示法看起来比起来更像现代Attribute元数据规范try/catch
,但它(至少是第2部分)很好地概述了异常处理的状态。七十年代中期。
也许值得一提的是Alef中的raise/rescue
机制,可以将其视为原始形式的块,以免我们认为它们是从Stroustroup的额头像宙斯的雅典娜一样完全形成的。catch