为什么整数表达式的值超过特定整数类型的取值范围时没有引发 ERangeError 异常
当一个整数表达式的值超过为一个特定整数类型分配的范围时引发 ERangeError 异常。
比如下面一段代码应该会引发一个 ERangeError 异常,但是实际测试结果并没有捕获到异常,代码如下:
procedure TForm1.btnCatch2Click(Sender: TObject);
var
SmallNumber:ShortInt;
X,Y:Integer;
begin
try
X:=100;
Y:=75;
SmallNumber := X + Y;
ShowMessage(IntToStr(SmallNumber));
except
on ERangeError do
ShowMessage('Error');
end;
end;
预计显示结果:弹出Error信息提示框
实际显示结果:-81