这个问题不是技术问题,而是历史问题.我今天才想到我还认为Java是使用异常处理的"第一"语言,直到我意识到我这样想的原因可能是因为Java是我遇到的第一种使用它的语言,但是我没有历史数据来支持这个结论.如今,异常处理在所有现代语言中都很常见,所以我只是想知道:有人知道它何时首次被广泛使用?什么语言是第一个开始使用它?
编程语言:原理与实践,第2版,作者Kenneth C. Louden(一本着名的编程语言教科书)指出,"异常处理是由20世纪60年代的PL/I语言开创的,并且在20世纪70年代在CLU中取得了显着进步.但是,只是在20世纪80年代和90年代初,设计问题才得到了很大的解决"(283).
异常处理甚至可以在编程语言之前回归; 首先,它是用于捕获错误条件(导致执行暂停的那些)以及可选地分支到子例程的硬件机制.
例如,VAX CPU可以检测何时访问了没有物理映射的虚拟地址,并调用从交换加载适当页面或暂停程序的子例程.该机制在现代处理器中基本相同(查找"转换后备缓冲区").所以从某种意义上说,第一种有异常的语言是汇编.
有例外的最早的结构化语言似乎是PL/I和CLU(参见上面的Mipadi).
CLU在20世纪70年代早期进行了异常处理.
在Java之前,C++有例外.