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;
答案 0 :(得分:6)
有两点不同:
通常你不关心最后提升的块。你根本不希望这种情况发生,如果确实发生了,可能会发生一些事情。
因此,重要的区别在于finally是否在异常处理程序之前运行,反之亦然。有时它并不重要,但它通常会产生影响。
答案 1 :(得分:2)
当您在执行的行下面使用try..except
时。
Resource := TAbstractResource.Create;
try
Resource.DoSomeThing;
except
On E:Exception Do
HandleException(E);
end;
FreeAndNil(Resource);