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

时间:2009-05-03 18:17:16

标签: delphi exception configuration debugging settings

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

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

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

2 个答案:

答案 0 :(得分:17)

我在

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

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

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

答案 1 :(得分:8)

以下内容摘自this page on the Delphi Q&A by Rob Kennedy :( CC许可),虽然它与Delphi 2005有关但可能有所帮助。

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

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

enter image description here

避免通知

如果您不希望在发生异常时收到通知,则可以选择一些选项。

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

    然后,设置另一个断点,希望调试器继续处理异常。更改其属性以处理后续异常。

enter image description here

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

enter image description here

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

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

enter image description here