各位老大,小弟写了一段代码.不知道为什么无法截获异常.请各位指点一下.代码如下: var SmallNumber:shortint; X,Y:Integer; begin try X:=100; Y:=75; SmallNumber:=x*y; except on ERangeError do showmessage('数据越界错误!'); end; end;
斑竹你好,当初没有截获异常的原因的确是没有在编译过程中打开类型检查,但是后来又出现了一个问题.是关于溢出异常的.具体情况见下列代码: var X,Z,y:integer; begin X:=2147483647; try {$q+} y:=2147483647; Z:=x+y; except on EIntOverFlow do showmessage('数据溢出错误!'); end; showmessage(inttostr(z)); {$q-} end; 看见红色的那一句没有如果没有这一句delphi也检查不到溢出异常.奇怪的是按说showmessage(inttostr(z));不在try..except..end;之中不会对数据溢出检查造成影响,但是不知道为什么没有这一句try却不能 截获溢出异常.