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

kyks70gy  于 2023-05-06  发布在  其他
关注(0)|答案(2)|浏览(198)

我在D2009中打开了一个项目(创建于D2007/08),它可以编译,但在执行时抛出大量异常。奇怪的事情,但我知道这个项目是一个烂摊子,所以我想继续下去,并解决它。好吧,不是真的解决所有的问题,只是让它工作就足够了。
当我运行它时,我得到了一些调试器异常通知(带有Break,Continue,Help按钮的小消息对话框),我想继续,看看跳过异常时是否可以工作。我选中了左下角的小“Ignore this exception type”复选框,然后单击Continue。现在我不再收到异常通知,但应用程序仍然没有运行。我只是得到了几个模糊的错误框,并且不知道发生了什么。
我想重新启用我以前选择的例外类型以忽略。但我找不到任何选择。我应该在哪里找这个?有人能帮忙吗?

3j86kqsm

3j86kqsm1#

中找到了忽略的异常类型
(Main menu) Tools >> Options >> Debugger Options >> CodeGear Debuggers >> Language Exceptions >>,并且存在忽略的异常类型列表。
它比D2005更隐蔽,但非常接近@stuartd引用的文章中所说的内容。

cotxawn7

cotxawn72#

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

为什么写完异常处理程序后,还会继续收到错误消息?

在其默认设置中,每当程序中出现异常时, Delphi 都会通知您,如图1所示。重要的是要认识到,在这一点上,程序的异常处理代码还没有运行。这都是 Delphi 自己的;它作为调试器的特殊状态允许它获得程序中任何异常的第一个通知,甚至在程序知道它之前。

避免通知

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

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

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

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

  • 在与前一个相关的选项中,可以告诉调试器不要在出现任何异常时中断。为此,请清除“语言异常时通知”复选框。
  • 最后,您可以完全关闭集成调试。 Delphi 不会通知您异常,也不会在断点处停止或允许使用“暂停”按钮。在调试器选项中关闭集成调试,如图5所示。

相关问题