我有一个应用程序,当调用FormatDateTime
时,偶尔会返回整数溢出。尽管我发现提到问题here和here,但我不知道是什么情况触发了此情况。
我当前的解决方法是包装函数并处理异常:
function FormatDateTimeEx (const FormatString : ANSIString ;
DateTime : TDateTime) : ANSIString ;
begin
try
Result := FormatDateTime (FormatString, DateTime) ;
except
Result := '???' ;
end ;
end ;
这解决了导致已编译的可执行文件崩溃的问题,但是如果我在IDE中运行程序时调试器没有在
EIntOverflow
异常上中断,我也希望这样做。我不想通过告诉IDE忽略EIntOverflow
异常来执行此操作,因为这样在发生未捕获的整数溢出的其他情况下它不会中断(对吗?)。对于那些可能发生异常并且您已经知道并正在处理异常的情况,是否存在以编程方式(编译时或运行时)告诉IDE在本地忽略异常类?
最佳答案
对于那些可能发生异常并且您已经知道并正在处理异常的情况,是否存在以编程方式(编译时或运行时)告诉IDE在本地忽略异常类?
没有代码,没有。但是,它可以在调试器中使用Breakpoints完成。
用两个断点包装受影响的代码:
function FormatDateTimeEx(const FormatString: AnsiString; DateTime: TDateTime): AnsiString;
begin // <-- breakpoint
try
Result := FormatDateTime (FormatString, DateTime) ;
except
Result := '???';
end;
end; // <-- breakpoint
进入第一个断点的属性,并启用“忽略后续异常”选项并禁用“中断”选项。
进入第二个断点的属性,并启用“处理后续异常”选项并禁用“断点”选项。
关于delphi - Delphi 2007-以编程方式处理“要忽略的异常(exception)”列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22598095/