我注意到 SysUtils.pas 中定义的 EStackOverflow 在 Delphi 2009 中被标记为已弃用。我检查并在 2007 年也被标记为已弃用。我在这里有一个 Delphi 7 安装磁盘,但我想我会问是否有人知道什么时候它已被弃用。
此外,有谁知道为什么,以及什么取代它?我编写了一个通过递归导致堆栈溢出的测试应用程序,我仍然得到一个 EStackOverflow 异常,但是如果我专门为它添加一个处理程序,那么我得到
[DCC 警告] Unit57.pas(85): W1000 符号 'EStackOverflow' 已弃用
我知道 EStackOverflow 是 EExternal 的后代,我可以捕获 EExternal 并检查 STATUS_STACK_OVERFLOW 的 ExceptionCode,但这似乎没有必要,因为它仍然会引发 EStackOverflow 异常。
这只是为了阻止我在自己的代码中抛出 EStackOverflow 吗?
(是的,我意识到在一个名为StackOverflow的网站上询问有关EStackOverflow的问题具有讽刺意味,是的,我非常认真。)