10

当发生异常时,调试器会给我以下消息:

在此处输入图像描述

我可以通过检查来选择忽略异常ignore this exception type
然而,这样做会忽略所有未来项目中的异常,这比无用更糟糕,因为我不想忽略每个项目中的异常;我只想在这次运行中忽略它们。

使用 ToolsAPI,有没有办法:

A - 仅忽略此运行的异常,或
B - 仅忽略此项目的异常,或
C - 重新启动 Delphi 时恢复忽略异常设置?

如果我能做到 A、B 或 C,我的问题就解决了。

我知道ignore exception数据存储在:

HKEY_CURRENT_USER\Software\Embarcadero\BDS\17.0\Debugging\Embarcadero Debuggers\Language Exception Classes

我的首选选项是使用 ToolsAPI 来修复消息框并添加一个ignore this exception for this session only复选框。
但是,如果那不可用,我可以在注册表中搞乱。
如果我确实回退到注册表,我想强制 Delphi 重新加载设置,这样我就不必重新启动 IDE。

作为记录,我正在使用西雅图,但我更希望从 2007 年开始使用它。

我检查了 ToolsAPI,但IOTAFileFilterWithCheckEncode看起来不相关,我认为IOTABreakpoint80仅适用于用户设置的断点。

我还没有源代码,因为我不确定使用 ToolsAPI 是否可以实现我想要的,如果不是,我将回退到使用记录上述注册表项的外部应用程序,启动 Delphi 并恢复注册表项。我希望有一种更清洁的方法。

4

1 回答 1

1

不幸的是,忽略异常的设置是全局 IDE 设置,而不是每个项目的设置,因此无论何时更改它们,更改都会影响您的所有项目。

我希望 Embarcadero 将其添加到项目选项中,以便我们可以为不同的项目设置不同的忽略异常设置。

在您检查ignore this exception type并单击任一ContinueBreak按钮后,以任何方式更改全局 IDE 设置并将提及的异常添加到Exception types to ignore列表中
Options->Debugger Options->Embarcadero Debugger->language Exceptions

要忽略的异常类型

就我而言,我添加了 EDivByZero 异常作为示例。

稍后您可以选中或取消选中某些异常前面的复选框,以控制 Delphi IDE 是否会忽略它。

现在可以使用 ToolsAPI 更改这些设置吗?我不知道,因为我没有任何使用 ToolsAPI 的经验。

我希望我至少可以为您指明正确的方向。

于 2016-06-06T11:14:48.257 回答