DateUtils.TryISO8601ToDate('8', Result)
会生成异常。但它尝试 !!!它的任务是尝试不抛出任何例外。
问题不在于Delphi IDE对此异常做出反应。问题是“Try”函数产生了这样的异常,而不是返回true / false。
答案 0 :(得分:3)
我认为您可能需要调整IDE调试器选项。
在IDE中转到工具|选项和调试器选项|下面的语言例外选项卡Embarcadero调试器,取消选中Notify on Language Exceptions
框。
选中该框后,调试器将在执行(或RTL)异常处理之前停止在IDE中执行。它弹出一个拨号,询问您是要中断执行还是继续执行。如果选择后者,则代码中的异常处理程序将执行。
更新 Tbh,随着q的更新,我一点也不清楚你说的是问题。以下代码的哪一部分不符合您的期望/希望以及如何运作?
procedure TForm1.TestISODates;
var
S : String;
DT : TDateTime;
begin
DT := Now;
S := DateToISO8601(DT, False);
Caption := S;
if TryISO8601ToDate(S, DT, False) then
Caption := 'OK';
S := 'banana';
if TryISO8601ToDate(S, DT, False) then
Caption := 'OK'
else
Caption := S + ' not ok';
end;