【问题标题】:Delphi - How to re-enable a debugger exception notification?Delphi - 如何重新启用调试器异常通知?
【发布时间】:2010-10-23 11:47:44
【问题描述】:

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

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

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

【问题讨论】:

  • 感谢您提出这个问题(及其答案)。最后,我的调试器按预期工作

标签: delphi exception configuration debugging settings


【解决方案1】:

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

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

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

避免通知

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

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

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

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

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

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

【讨论】:

  • 我看过它,虽然它给了一些希望,但 2009 年的版本发生了很大变化,不再存在选项(如 2005 年的快照所示)。
  • 我正在查看另一个选项窗口,哎呀。感谢您指点我这篇文章。
  • 帮我在 Delphi 10.1 中找到它。 6年,依然有效。谢谢。
  • 这些变体都没有达到我想要的效果。
【解决方案2】:

我在

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

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

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

【讨论】:

  • 根据你在这里引用的顺序,唯一的区别是“Borland Debuggers”变成了“Codegear Debuggers”。
  • 嗯,是的。问题是,我一开始是在错误的选项屏幕中寻找它。我认为它在 Ctrl+Shift+F11 选项中,首选项是特定于项目的,它在工具>>选项屏幕中。在过去三年左右的时间里,我在 Delphi 中进行的开发很少,并且习惯了 Eclipse 以及如何过滤掉这些选项。现在我们在这里有一个关于 SO 的问答,这就是这个网站的真正意义所在。我希望将来这会帮助一些人解决这个问题。
猜你喜欢
  • 2015-01-02
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
  • 2014-09-02
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2016-06-20
相关资源
最近更新 更多