我可以只忽略一次异常吗?

Joh*_*ica 10 delphi debugging exception toolsapi

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

在此输入图像描述

我可以通过检查来选择忽略异常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并恢复注册表项.我希望有一种更清洁的方式.

Sil*_*ior 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 的经验。

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