首先实现异常处理的语言是什么?

soa*_*gem 18 exception-handling exception

这个问题不是技术问题,而是历史问题.我今天才想到我还认为Java是使用异常处理的"第一"语言,直到我意识到我这样想的原因可能是因为Java是遇到的第一种使用它的语言,但是我没有历史数据来支持这个结论.如今,异常处理在所有现代语言中都很常见,所以我只是想知道:有人知道它何时首次被广泛使用?什么语言是第一个开始使用它?

mip*_*adi 29

编程语言:原理与实践,第2版,作者Kenneth C. Louden(一本着名的编程语言教科书)指出,"异常处理是由20世纪60年代的PL/I语言开创的,并且在20世纪70年代在CLU中取得了显着进步.但是,只是在20世纪80年代和90年代初,设计问题才得到了很大的解决"(283).


Cra*_*rks 15

异常处理甚至可以在编程语言之前回归; 首先,它是用于捕获错误条件(导致执行暂停的那些)以及可选地分支到子例程的硬件机制.

例如,VAX CPU可以检测何时访问了没有物理映射的虚拟地址,并调用从交换加载适当页面或暂停程序的子例程.该机制在现代处理器中基本相同(查找"转换后备缓冲区").所以从某种意义上说,第一种有异常的语言是汇编.

有例外的最早的结构化语言似乎是PL/I和CLU(参见上面的Mipadi).

  • 硬件陷阱/中断与异常处理不同。陷阱/中断通常要么嵌套在堆栈上,并允许处理不受干扰地继续进行,要么它们杀死线程及其堆栈。硬件陷阱/中断很少被用于远程模仿C ++ / C#/ vb / .net / etc的范例来扰乱程序流。例外。 (2认同)

Bar*_*own 10

CLU在20世纪70年代早期进行了异常处理.

  • 实际上,根据您链接的论文,CLU 异常处理的工作始于 1975 年,并在 1977 年稳定下来。因此,*晚* 1970 年代将是一个更好的表征。 (2认同)

duf*_*ymo 7

在Java之前,C++有例外.