TryISO8601ToDate会生成异常

时间:2017-03-03 08:57:03

标签: parsing delphi delphi-10-seattle

DateUtils.TryISO8601ToDate('8', Result)会生成异常。但它尝试 !!!它的任务是尝试不抛出任何例外。

问题不在于Delphi IDE对此异常做出反应。问题是“Try”函数产生了这样的异常,而不是返回true / false。

1 个答案:

答案 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;