Blue
Red
Green
Orange
Voilet
Slate
Dark

关于try...except(30分)

  • 主题发起人 爱如泣血
  • 开始时间

爱如泣血

Unregistered / Unconfirmed
GUEST, unregistred user!
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
i:=0;
end;
请问为什么不会弹出对话框显示'can not divide by zero!'
 
S

snow.bai

Unregistered / Unconfirmed
GUEST, unregistred user!
這樣就ok了
procedure TForm1.Button1Click(Sender: TObject);
var
x,y:integer;
i:extended;
begin
x:=1;
y:=0;
i:=0;
try
i:=x/y;
except
showmessage('can not divide by zero');
i:=0;
end;//try
end;
 
M

maozhuxi

Unregistered / Unconfirmed
GUEST, unregistred user!
示'can not divide by zero!'
不能除0啊!
 

爱如泣血

Unregistered / Unconfirmed
GUEST, unregistred user!
试过了。同样不行呀。
 
M

maozhuxi

Unregistered / Unconfirmed
GUEST, unregistred user!
我想楼主的
try
try
是笔误吧?可能delphi把x/y自动设为0 了
 
N

netarct

Unregistered / Unconfirmed
GUEST, unregistred user!
楼主,由于你的变量i在实际运行过程中根本没有起作用,所以 i:=x/y 这句根本没有执行,那么相应的 try .. except 也就没有执行,不弹出对话框也就很正常了。
可以试试在finally里加入这样一句: label1.caption :=floattostr(i)。这样就达到你要的目的了。
 

我为歌狂

Unregistered / Unconfirmed
GUEST, unregistred user!
同意楼上的....
 
F

famu

Unregistered / Unconfirmed
GUEST, unregistred user!
因为你的i:=x/y产生的值没有使用,所以编译器对代码进行了优化,根本就没有编译你的i:=x/y这一句。
你试试这样:
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;
 
G

gylin122

Unregistered / Unconfirmed
GUEST, unregistred user!
楼主该不是在delohi开发环境中运行吧?如果这样肯定不会报你抛出的异常。
 
D

dpetll

Unregistered / Unconfirmed
GUEST, unregistred user!
我想这样就可以了吧
procedure TForm1.Button1Click(Sender: TObject);
var
x,y:integer;
i:extended;

begin
x:=1;
y:=0;
i:=0;
try
i:=x/y;
except
begin
showmessage('can not divide by zero');
exit;
end;
end;
i:=0;
end;
 
C

chengangsir

Unregistered / Unconfirmed
GUEST, unregistred user!
try
edit3.Text:=floattostr(strtoint(edit1.text)/strtoint(edit2.text));
except
showmessage('error');
edit3.text:='0';
end;
 
F

fishjam

Unregistered / Unconfirmed
GUEST, unregistred user!
在showmessage处设置端点,如果调试时没有进入就说明被优化了(默认就是这样)。如果被优化的话,在Project Options中的Compiler页内,取消Optimization就可以了。
 

爱如泣血

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大哥,还是不行呀。
请各位试过了吗?求求了,明天要交了。
谢谢。
 
H

hnzcg124

Unregistered / Unconfirmed
GUEST, unregistred user!
统一fishjam的话,设置断点
 
F

farce

Unregistered / Unconfirmed
GUEST, unregistred user!
except
showmessage('error');
不对的,你看一下帮助文件,应该是E:ERRDATA.MESSAGE('ERROR').
我忘了该怎么写,我不在家,在EXCEPT中是判断返回的值是什么时回答对话框,你不能直接写
SHOWMESSAGE,你先不写内容,看它报什么错,再在EXCEPT中加入
 
M

maozhuxi

Unregistered / Unconfirmed
GUEST, unregistred user!
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;
肯定是对的啊!
 
M

maozhuxi

Unregistered / Unconfirmed
GUEST, unregistred user!
这个小程序我打包放在网上了
楼住快点看看吧,明天我就要把他删了
http://qiangzhe.8u8.com/123.rar
 
Z

zLight

Unregistered / Unconfirmed
GUEST, unregistred user!
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
//@@@@@@@@@@@
end;
End;
 

爱如泣血

Unregistered / Unconfirmed
GUEST, unregistred user!
maozhuxi不要骗我了。到底是怎么做的?
是不是可执行文件与工程文件不一样??

 
A

AH!

Unregistered / Unconfirmed
GUEST, unregistred user!
这个问题已近说明白了,咳。
 

Similar threads

I
回复
0
查看
559
import
I
I
回复
0
查看
545
import
I
I
回复
0
查看
827
import
I
I
回复
0
查看
510
import
I
顶部 底部