我注意到在SysUtils.pas中定义的EStackOverflow在Delphi 2009中被标记为已弃用。我在2007年也将其标记为已弃用。我在这里有一个Delphi 7安装磁盘,但是我想问一问是否有人知道何时它已被弃用。
另外,有谁知道为什么,并且用什么代替它?我编写了一个测试应用程序,该应用程序通过递归导致了堆栈溢出,但仍然会收到EStackOverflow异常,但是如果我专门为其添加处理程序,则会得到
[DCC警告] Unit57.pas(85):不推荐使用W1000符号'EStackOverflow'
我知道EStackOverflow源自EExternal,我可以捕获EExternal并检查ExceptionCode中的STATUS_STACK_OVERFLOW,但这似乎是不必要的,因为它仍然会引发EStackOverflow异常。
这仅仅是为了阻止我在自己的代码中抛出EStackOverflow吗?
(是的,我意识到在一个名为StackOverflow的网站上询问有关EStackOverflow的问题具有讽刺意味,是的,我是非常认真的。)
最佳答案
我这里没有D5,但是我几乎不记得已弃用的指令
仅出现在D6上。
至于StackOverflow异常,我认为它已过时,因为仅在Delphi运行时环境中引发它。
编辑:基于所有答案的总和,当引入了Deprecated关键字时,在Delphi 6中不推荐使用EStackOverflow。