这条语句为什么不执行?

Wango 2001-05-28 05:06:00
Var
I,j,k:Integer;
begin
J:=0;
I:=5;
try
K:=(i div j);
except
k:=-1;
raise;
end;
caption:=inttostr(K);
end;
为什么K:=-1这条语句不执行,没有道理呀?

...全文
124 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
richardsong 2001-05-28
  • 打赏
  • 举报
回复
div 0 还不出错?
richardsong 2001-05-28
  • 打赏
  • 举报
回复
见者有分哦!
woodfairy 2001-05-28
  • 打赏
  • 举报
回复
因为没有出错,except没得到执行
Wango 2001-05-28
  • 打赏
  • 举报
回复
再次感谢Kingron(WinAPI) !!!
Kingron 2001-05-28
  • 打赏
  • 举报
回复
Optimization就是优化的意思,Delphi编译器会去掉一些没有用的代码和一些没有用到的变量,去掉优化之后,就是强制Delphi保留那些没有用的代码和变量,优化其实有几种,一种是代码优化,一种是速度优化,一种是大小优化,还有其他的吧?我也弄不明白了~~~~~~~``在Turbo Pascal & Borland C++31里面的编译选项中就有几个可以选择的地方!
三隻白白豬 2001-05-28
  • 打赏
  • 举报
回复
因为使用了raise,把raise去掉就可以了,raise是强制退出。
Wango 2001-05-28
  • 打赏
  • 举报
回复
To Kingron(WinAPI) :
果然是高手,问题解决了,那么斑竹能不能在说说Optimization具体在这里起什么作用呢?(今天我一定把此贴结了,不给论坛添麻烦。)
Kingron 2001-05-28
  • 打赏
  • 举报
回复
修改代码如下,并且修改Project Options的Compiler-->把Optimization去掉就可以了.
也可以修改Debug Options,
Var
I,j,k:Integer;
begin
J:=0;
I:=5;
try
K:=(i div j);
except
k:=-1;
caption:=inttostr(K);
raise;
end;
end;
Wango 2001-05-28
  • 打赏
  • 举报
回复
TO wanwangzhiwang(万王之王) 
我也试过把Raise去掉是可以的,但为什么加Raise就不行呢,这可是书上的例子啊。
Wango 2001-05-28
  • 打赏
  • 举报
回复
To sundayboys(sunboy) 
可是这条语句是写在Except后面的啊,为什么也不能执行哪?
wanwangzhiwang 2001-05-28
  • 打赏
  • 举报
回复
把Raise去掉就可以了!
Wango 2001-05-28
  • 打赏
  • 举报
回复
??
sundayboys 2001-05-28
  • 打赏
  • 举报
回复
呵呵,这个是因为你的程序出现除0这个异常,被系统处理了,没有被你的程序捕捉到。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧