amp*_*ent 9 python exception-handling try-catch
我正在学习Python并偶然发现了一个我不能轻易消化的概念:构造中的可选else块try.
根据文件:
try ... except语句有一个可选的else子句,当存在时,必须遵循所有except子句.如果try子句不引发异常,则必须执行的代码很有用.
我感到困惑的是,如果try子句没有在try构造中引发异常,为什么必须执行代码 - 为什么不简单地让它遵循try/except在相同的缩进级别?我认为这将简化异常处理的选项.或者另一种问题是,else如果它只是跟随try语句而独立于它,那么块中的代码将会做什么.也许我错过了什么,请赐教.
这个问题有点类似于这个,但我找不到我想要的东西.
use*_*ica 13
else只有当代码中的代码try没有引发异常时才会执行该块; 如果你把代码放在else块之外,它就会发生,无论例外情况如何.而且,它发生在之前finally,这通常很重要.
当您有一个可能出错的简短设置或验证部分时,这通常很有用,然后是您使用您设置的资源的块,其中您不想隐藏错误.您不能将代码放入,try因为except当您希望它们传播时,错误可能会转到子句.你不能把它放在构造之外,因为那里的资源肯定不可用,因为安装失败或者因为finally一切都失败了.因此,你有一个else块.
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |