try...except 罢工了。 怎么把 ( 积分: 100 )

  • 主题发起人 主题发起人 vinlin
  • 开始时间 开始时间
V

vinlin

Unregistered / Unconfirmed
GUEST, unregistred user!
var a,b:integer;
begin
b:=0;
try
a= a dia b
except
showmessage('失败');
end;
竟然没有任何反应。不会提示。
 
var a,b:integer;
begin
b:=0;
try
a= a dia b
except
showmessage('失败');
end;
竟然没有任何反应。不会提示。
 
procedure TForm1.Button1Click(Sender: TObject);
var
A, B: Integer;
begin
A := 6;
B := 0;

try
A := A div B
except
ShowMessage('失败');
end;

ShowMessage(IntToStr(A))
// 请加上这句
end;

如果后面代码没有用到 A, 实际上 A 相当于无用变量, 则A := A div B;不会被编译, 当然不会出错了,
另外如果没有引用SysUtils单元(其中InitExceptions()未调用), 也不能使用编译器支持的try/except
 
var tt:integer;
begin

try tt:=strToint(trim(self.edt_zhujh.Text));
except
showMessage('FAILD');
exit;
end;
if tt< 1570000 then
begin
self.edt_zhujh.Text :='EB0'+TRIM(self.edt_zhujh.Text);
end else begin
self.edt_zhujh.Text :='NB0'+TRIM(self.edt_zhujh.Text);
end

end;
谢谢麻子,但是上面这个例子中,DELPHI还是会报错而不是按EXCEPT要求提示错误。
 
在 delphi 的 ide 下 delphi 会提示。单独运行编译出来 exe 就好了 ...
 
拜托,报什么错也说一声,又不是玩猜谜游戏,你猜完了我来猜...
再说了你的self.edt_zhujh.Text也没说是啥东东啊,strtoint('我')当然会出错了
 
1)Delphi的调试器是不是把异常拦截了?tools->debugger option界面。
2)还真遇到过Try/except失灵的时候,代码如下,结果还真没有把异常拦到,直接就执行finally语句段了.

try
try
//.....
adoQry.open;//语法有问题
except
on E:exception
Msg(e.Message,'出错')
end
finally
...
end
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
836
import
I
后退
顶部