如何在Delphi中禁用所有异常提升?

use*_*737 4 delphi dialog exception raise delphi-7

有没有办法在发生异常或错误时禁用所有对话框(如访问冲突,indy套接字错误,超时等)?它们有时会在我的程序中抛出,但这些错误在任何方面都不是致命的,可以忽略,只是对话框令人不安.我使用的是Delphi 7.

GJ.*_*GJ. 6

如果您不想显示异常窗口,请转到:

工具/选项/调试器选项/语言异常并禁用CheckBox Notify语言异常.对于Delphi 2010而言,这是一个不错的选择.

(我不记得它是否与Delphi 7中的CheckBox相同).

编辑:在某些情况下,例外是不可避免的,特别是当我们使用来自互联网的未知文件时.因此,我认为您的异常在Indy下正确处理,只需关闭Notify语言异常

  • 在Delphi 7中,它类似于Tools - > Debugger Options - > Language Exceptions - > untick'Det on Delphi Exceptions' (3认同)

g2m*_*2mk 5

您可以自定义Application.OnException事件.但是IMVHO ......

  • Application.OnException最适合记录您忘记处理的异常.
  • Application.OnException应该仅用于在您迫切需要性能时捕获异常(在这种情况下,您应该预期执行路径损坏).

和:

  • 访问冲突是致命错误 - 您必须追踪并摆脱所有AV.
  • 您无法通过Application.OnException覆盖隐藏异常对话框 - 您应该以正确的方式使用try finally/except.

  • @DavidHeffernan尝试/除非完全有效,如果你正确使用它.例如.不是为了覆盖地毯下覆盖所有覆盖try..except结束;,但做实际处理不同的例外. (3认同)