小编jan*_*152的帖子

尝试...除了...最终在Delphi中有什么意义?

我知道这听起来像是一个古老的愚蠢问题,但我在互联网上搜索了所有内容,但我仍然不明白一件事。我知道 try-finally 将在停止错误之前运行 finally 代码(或者在没有引发异常时不停止)并且 try-except 将在引发异常时运行except代码。但我仍然不明白的是 try-except 在 try-finally 语句中的意义。我会写一个例子

我总是做的是这样的:

a:=x.Create;
try 
  a.DoRiskyStuff;
except
  ShowMessage('Error!');
end;
a.free;
Run Code Online (Sandbox Code Playgroud)

多年来我从未使用过 finally 子句,因为我总是处理错误,而且我从来不明白将它们嵌套在一起使用的意义何在。我的解决方案有什么不好?为什么在示例中使用这样的东西很常见:

a:=x.Create;
try
  try
    a.DoRiskyStuff;
  except
    ShowMessage('Error!');
  end;
finally
  a.free;
end;
Run Code Online (Sandbox Code Playgroud)

有什么不同?当所有清理工作都可以在 try-except 之后完成时,为什么有人要使用 finally 子句?

非常感谢您的回答!

编辑:我更改了创建行,所以你们中的一些人想要为此而抨击我;)

delphi

5
推荐指数
1
解决办法
4851
查看次数

标签 统计

delphi ×1