gpt4 book ai didi

delphi - 在Delphi中尝试除了尝试还是最终尝试

转载 作者:行者123 更新时间:2023-12-03 18:59:48 25 4
gpt4 key购买 nike

对于Delphi或fpc中的嵌套异常处理,已经提到了很多事情。例如this之类的东西。我的问题也许可以解决对嵌套try...块的需求,即以下两个版本的代码之间是否存在实际差异,我看不到任何区别,除非在expect或<之后出现未定义的行为或发生什么cc> ...

try
StrToInt('AA');
finally
writeln('I absolutely need this');
end;
writeln('and this');




和...

try
StrToInt('AA');
except
end;
writeln('I absolutely need this');
writeln('and this');

最佳答案

是,有一点不同。巨大的一个。

如果try块中没有异常,则两个版本都将执行所有代码,但是如果存在异常,则行为会有所不同。

在您的代码的第一个版本中,finally块之后的任何内容都不会执行,并且异常将传播到下一个级别。

try
StrToInt('AA'); // if this code throws exception and it will
finally
writeln('I absolutely need this'); // this line will execute
end;
writeln('and this'); // this line will not execute


在第二个版本中,异常将由 except块处理,并且以下代码将继续正常执行。

try
StrToInt('AA'); // if this code throws exception and it will
except
end;
writeln('I absolutely need this'); // this line will execute
writeln('and this'); // this line will also execute




在链接的问题中,您嵌套了异常块,并且这种情况的行为与上一个情况不同,其解释方式与该问题的答案相同。



文档: Delphi Exceptions

关于delphi - 在Delphi中尝试除了尝试还是最终尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36668201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com