【发布时间】:2023-03-17 02:34:01
【问题描述】:
我很惊讶得到除以零异常。如何找回?
Berlin 10.1 最近安装,新项目,
procedure TForm1.Button1Click(Sender: TObject);
var
a: Double;
begin
a := 5/0; // No exception
ShowMessage(a.ToString); // -> 'INF'
end;
【问题讨论】:
-
在我的柏林副本上得到确认。好像也在东京:community.embarcadero.com/answers/…
-
@Jerry: 那是因为表达式是一个常量表达式,不是在运行时计算的。两个数(除数、除数)中的至少一个必须是变量才能导致异常。
-
太棒了!编译器知道如何除以 0 :)
-
@Victoria:实际上,编译器可能也会将其留给 FPU,但在编译时会这样做,显然它会在这样做时掩盖(一些)异常。如果零除异常被屏蔽,则无限是有效结果。
-
在西雅图我也能看到这种情况
标签: delphi exception delphi-10.1-berlin