我在 D2009 中打开了一个项目(在 D2007/08 创建),它可以编译,但在执行时抛出大量异常。奇怪的是,但我知道这个项目一团糟,所以我想继续修复它。好吧,并不是真的解决所有问题,只要让它发挥作用就足够了。

当我运行它时,我收到了一些调试器异常通知(带有“中断”、“继续”、“帮助”按钮的小消息对话框),我想继续,看看跳过异常时是否可行。我选中了左下角的“忽略此异常类型”小复选框,然后单击“继续”。现在我不再收到异常通知,但应用程序仍然无法运行。我只是收到几个模糊的错误框,并且几乎不知道发生了什么。

我想重新启用我之前选择忽略的异常类型。但我在任何地方都找不到这个选项。我应该去哪里寻找这个?有人可以帮忙吗?

有帮助吗?

解决方案

以下内容摘自 罗布·肯尼迪 (Rob Kennedy) 的德尔福问答页面:(CC 许可)虽然它与 Delphi 2005 有关,但它可能会有所帮助。

为什么即使在编写了异常处理程序之后,我仍然继续收到错误消息?

在默认设置下,只要程序中发生异常,Delphi IDE 就会通知您,如图 1 所示。重要的是要认识到,此时程序的异常处理代码还没有运行。这都是 Delphi 本身;它作为调试器的特殊地位允许它在程序中的任何异常发生之前获得第一个通知,甚至在您的程序知道它之前。

enter image description here

避免通知

如果您不想在发生异常时收到通知,您有几种选择。

  • 您可以使用 Delphi 的“高级断点”来禁用代码区域周围的异常处理。首先,在您希望 IDE 忽略异常的代码行上设置一个断点。右键单击装订线中的断点点,然后打开断点属性对话框。在高级部分有一些复选框。(参见图 2。)清除“Break”框以防止调试器在该行中断程序,并设置“Ignore 随后的异常”框。

    然后,在您希望调试器恢复处理异常的位置设置另一个断点。更改其属性以处理后续异常。

enter image description here

  • 您可以告诉调试器忽略某些类型的异常。图 3 显示了 Delphi 的语言异常选项。将异常类添加到列表中,该类型和任何后代类型的所有异常都将传递到您的程序,而不会出现 Delphi 干扰。

enter image description here

  • 在与上一选项相关的选项中,您可以告诉调试器不要因任何异常而中断。为此,请清除“通知语言例外”复选框。

  • 最后,您可以完全关闭集成调试。Delphi 不会通知您异常情况,也不会在断点处停止或允许使用“暂停”按钮。在调试器选项中关闭集成调试,如图 5(Delphi 2005)所示。

enter image description here

其他提示

我在

中找到了被忽略的异常类型

(主菜单)工具>>选项>>调试器选项>> CodeGear调试器>>语言例外>> ,忽略了异常类型列表。

它比D2005更隐蔽,但与Stuart Dunkeld引用的文章中所说的非常接近。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top