Delphi 2007 - "exceptions to ignore"列表的编程操作

标签 delphi exception delphi-2007 integer-overflow

我有一个应用程序,在调用 FormatDateTime 时偶尔会返回整数溢出。我不知道什么情况会触发此问题,尽管我发现提到了该问题 herehere .

我当前的解决方法是包装函数并处理异常:

function FormatDateTimeEx (const FormatString : ANSIString ;
                                 DateTime     : TDateTime) : ANSIString ;
begin
try
    Result := FormatDateTime (FormatString, DateTime) ;
except
    Result := '???' ; 
    end ;
end ;

这解决了导致编译后的可执行文件崩溃的问题,但我也希望当我在 IDE 中运行程序时调试器不会因 EIntOverflow 异常而中断。我不想通过告诉 IDE 忽略 EIntOverflow 异常来实现此目的,因为这样,当发生未捕获的整数溢出时,它就不会在其他情况下中断(对吗?)。

对于可能发生异常并且您已经知道并正在处理它的情况,是否有一种编程方式(编译时或运行时)告诉 IDE 在本地忽略异常类?

最佳答案

Is there a programmatic way (compile-time or run-time) of telling the IDE to locally ignore an exception class, for those occasions when an exception can occur, and you already know that and are handling it?

没有。

您无法要求调试器忽略某些 EIntOverflow 异常,但不忽略其他异常。你要么忽略它们全部,要么不忽略它们。控制调试器中哪些异常中断的唯一方法是通过异常类。您不能要求调试器忽略程序某一部分的异常,而忽略另一部分的异常。

坦率地说,在我看来,解决这个问题的正确方法是首先弄清楚为什么会触发这些异常。并采取一些措施来防止它们发生。这些异常是代码中错误的症状,您需要立即解决。

关于Delphi 2007 - "exceptions to ignore"列表的编程操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22598095/

相关文章:

delphi - 如何以编程方式将子菜单添加到 TActionMainMenuBar?

delphi - 我应该在每个 Object.Create 之后放置一个 try-finally block 吗?

Delphi接口(interface)实现

mysql - 使用 ZeosLib 禁用 MySQL secure_auth 客户端选项

java - 定义我自己的异常时找不到符号

java - "AWT-EventQueue-0"线程错误中出现异常

java - 实现 java.lang.Iterator 时如何处理异常

delphi - 使用 OnDrawItem 事件时 TListview 未正确绘制

delphi - 使用复杂记录时有关“无效指针操作”的建议

delphi - 如何在不滚动到顶部的情况下查看函数或过程是私有(private)的、 protected 还是公共(public)的