Delphi - 如何重新启用调试器异常通知?

问题描述 投票:0回答:2

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

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

我想重新启用我之前选择忽略的异常类型。但我无法在任何地方找到该选项。我应该在哪里寻找这个?谁能帮忙?

delphi exception configuration debugging settings
2个回答
23
投票

我在

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

(Main menu) Tools >> Options >> Debugger Options >> CodeGear Debuggers >> Language Exceptions >>
并且有被忽略的异常类型列表。

它比 D2005 更隐蔽,但与@stuartd 引用的文章中所说的内容非常接近。


19
投票

以下内容摘自 Rob Kennedy 的 Delphi Q&A 页面:(CC 许可)虽然它与 Delphi 2005 相关,但它可能有所帮助。

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

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

避免通知

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

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.