加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 使用try-except块包装try-finally块之间有什么区别,反

发布时间:2020-12-15 09:33:38 所属栏目:大数据 来源:网络整理
导读:Delphi中两种编码模式之间是否存在实际差异: 版本1 try try {Do something} finally {Do tidy up} endexcept {Handle exception}end; 版本2 try try {Do something} except {Handle exception} endfinally {Do tidy up}end; 解决方法 有两点不同: except和
Delphi中两种编码模式之间是否存在实际差异:

版本1

try
  try
    {Do something}
  finally
    {Do tidy up}
  end
except
  {Handle exception}
end;

版本2

try
  try
    {Do something}
  except
    {Handle exception}
  end
finally
  {Do tidy up}
end;

解决方法

有两点不同:

> except和finally块执行的相对顺序不同.在版本1中,finally在except之前执行.在版本2中,执行顺序是相反的.
>在版本1中,如果finally块引发,则它将由except块处理.在版本2中,则它将由下一个包含异常处理程序处理,即在此代码之外.

通常你不关心最后提升的块.你根本不希望发生这种情况,如果发生这种情况,有些东西可能会非常破碎.

因此,重要的区别在于finally是否在异常处理程序之前运行,反之亦然.有时它并不重要,但它往往确实有所作为.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读