标题:求助:关于异常处理.
取消只看楼主
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
 问题点数:0 回复次数:2 
求助:关于异常处理.

各位老大,小弟写了一段代码.不知道为什么无法截获异常.请各位指点一下.代码如下:
var
SmallNumber:shortint;
X,Y:Integer;
begin
try
X:=100;
Y:=75;
SmallNumber:=x*y;
except
on ERangeError do showmessage('数据越界错误!');
end;
end;

2006-04-02 16:25
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
得分:0 
斑竹你好,当初没有截获异常的原因的确是没有在编译过程中打开类型检查,但是后来又出现了一个问题.是关于溢出异常的.具体情况见下列代码:
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却不能
截获溢出异常.
2006-04-05 19:33
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
得分:0 
关于try..except..end;这个我也知道那是一个保护模块,目的是让异常产生是按我们的构想进行处理.另外关于上例中的那个z,最初我也想过是不是必须得使用变量z时才能产生异常,如果是那样的话,不一定非得用showmessage.但是我尝试了一下用其他方法调用z但是try仍然不会截获异常.哎,问题没解决,辗转反侧.
2006-04-06 20:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-54586-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.195269 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved