关于try...except(30分)

  • 主题发起人 爱如泣血
  • 开始时间
爱如泣血
我骗你干什么?你下载的哪个东东又不是没有原文件
你自己打开看看就知道了啊!
 
maozhuxi肯定是对的!
爱如泣血, 请贴出您的e-mail,我发送给您!
 
procedure TForm1.Button1Click(Sender: TObject);
var
x,y:integer;
i:extended;

begin
x:=1;
y:=0;
i:=0;
try
try
i:=x/y;
except
showmessage('can not divide by zero');
end;
finally
caption:=floattostr(i);
end;
end;
肯定是对的啊!
上面的偶测试通过了的,有错也是你的问题
 
我在上面都已经解释很清楚了,famu还给出了具体的代码,真不知道还有什么不明白的。
不懂。
 
var
x,y:integer;
i:extended;
begin
x:=11;
y:=0;
i:=450;
try
i:=x/y;
showMessage(floatToStr(i));
except
showmessage('can not divide by zero');
end;
end;
楼主还不明白吗?
代码是没有问题,
问题在于,你的那个i在程序的其他地方没有用到
而被编译器的优化功能给抛弃了,也就是他根本没有被执行,当然就没有异常可抓了
 
用DELPHI编译完后不要直接运行,到DELPHI外再运行
DELPHI编译环境下有些条件用TRY EXCEPT体现不出来
 
用DELPHI编译完后不要直接运行,到DELPHI外再运行

DELPHI编译环境下没用
 
try嵌入方式不对,重复了,只运行其中一段
 
这个问题怎么还没结呀??
procedure TForm1.Button1Click(Sender: TObject);
var
x,y:integer;
i:extended;
s:string;
begin
x:=1;
y:=0;
i:=0;
try
try
i:=x/y;
s:=floattostr(i);
except
showmessage('can not divide by zero');
end;
finally
i:=0;
end;
end;

这是编辑器的事件,就是说你定义了变量没用它.你按我上面加上就有提示了.
 
to jianguobu
你认为finally后面的i能执行吗?
 
这样简单点的跟楼主的有何不同呀!
procedure TForm1.Button1Click(Sender: TObject);
var
x,y:integer;
i:extended;
begin
x:=1;
y:=0;
i:=0;
try
i:=x/y;
finally
showmessage('can not divide by zero');
i:=0;
end;
end;
 
你在代码中写的 i:=x/y;
实际上是赋值语句,
delphi 编译器如果发现后面的语句中没有任何语句要使用 变量 i 的话,
delphi 是不会把这句编译成机器代码的。
所以你永远不会得到后面的异常处理的显示。
 
被编译器优化了
 
我试行了’sany‘的程序能够
弹出'can not divide by zero'消息
“WoDing”的程序只能在脱离了delhpi7环境下才可以弹出这则消息
 

Similar threads

I
回复
0
查看
555
import
I
I
回复
0
查看
538
import
I
I
回复
0
查看
821
import
I
I
回复
0
查看
504
import
I
顶部