请问一个异常的问题(0分)

  • 主题发起人 主题发起人 awfigsk
  • 开始时间 开始时间
A

awfigsk

Unregistered / Unconfirmed
GUEST, unregistred user!
请问一个异常的问题


var
i,j,k:integer;
begin
j:=0;
try
k:=i div j;
[red]showmessage(inttostr(k));[/red]
except
on E:EDivByZero do
[blue]messageDlg(E.Message+#13#13+'Address:'+format('%p',[ExceptAddr]),
mtError,[mbOK],0);[/blue]
end;
end;
当我在代码中不加入红色这部分内容,则不会弹出错误对话框(蓝色这部分代码好像不会
执行?),也就是好像不会触发异常捕捉,?请问这是为什么?
 
一个整数不能被0整除
 
被0除的 错误好象不是这样捕捉
 
请各位看清了我的问题才回答好吗?谢谢!
 
不知道你有没有注意编译后k:=i div j;语句左边没有蓝点?
对了,DELPHI优化程序把它给优化掉了(因为K没有被使用到,系统有个HINT的提示),就是说,这句不会执行了。
而showmessage(inttostr(k));加上后,k被使用了,所以就有异常被捕获了。
 
哦,有可能.是的,十分感谢huntor!
 
后退
顶部