有没有一种方法可以检查Delphi TDateTime变量是否具有有效内容,而不会在转换时捕获异常?

我已经编写了一个应用程序,该应用程序必须解析成百个巨大的文件,这些文件被编写为包含TDateTime字段的原始Delphi记录。有时,我会得到一条记录,其中的内容具有TDateTime值(如2.0927117954e+262),该值在传递给转换例程时会给出Floating point invalid Operation异常。我知道我可以简单地捕获异常,但这在调试时非常麻烦,因为调试器不断停止,并且我想在其他错误的情况下保持启用状态。

最佳答案

您的示例值显然超出有效的DateTime范围。您可以在执行任何转换之前测试它是否在范围内。

var
  d: TDateTime;
..

d := 2.0927117954e+262;
if (d <= MaxDateTime) and (d >= MinDateTime) then
  s := DateTimeToStr(d)
else
  ..

关于delphi - 如何检查TDateTime内容是否有效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11747813/

10-11 05:40