在 finally 中出错会怎样? ( 积分: 50 )

  • 主题发起人 主题发起人 catcatdogdog
  • 开始时间 开始时间
C

catcatdogdog

Unregistered / Unconfirmed
GUEST, unregistred user!
如下代码:
try
...
finally
Proc1;
Proc2;
end;
如果运行到 Proc1 的时候出错,还会运行 Proc2 吗?
在 finally 里面还能嵌套 try..finally 吗?如:
try
...
finally
try
...
finally
...
end;
end;
 
如下代码:
try
...
finally
Proc1;
Proc2;
end;
如果运行到 Proc1 的时候出错,还会运行 Proc2 吗?
在 finally 里面还能嵌套 try..finally 吗?如:
try
...
finally
try
...
finally
...
end;
end;
 
try可以嵌套,
finally是为了保证在出错的情况下也能执行一些东西才需要用的,如:
strList := TStringList.Create;
try
...
finally
strList.Free;
end;
这样不管try中的语句是否会错,在完成后strList都会被释放
 
我用过,可以!
 
可以欠套
 
那在 finally 里面出错会怎样呢?我关心的是这个。
 
那就是你的写法有问题,一般不会在finally里写容易出错的代码
你可以嵌套啊
try
...
try
Proc1;
Proc2;
except //或finally
end;
finally
...
end
 
如果是必须写在 finally 里面的代码,又出错了,会怎么样?
 
那程序就终止了呀
事实上,只要代码写得好,不会出现这种情况
 
再加try....finally.....end;
何况,不会这么惨吧??
^_^
 
知道了
try

finally
ShowMessage(IntToStr(StrToInt('a')));
ShowMessage('ok')
//此句不执行
end;
收工
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
913
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部