我正在python中尝试获取值的特殊try-except-else块,如果我失败,我尝试将其创建为稍后使用。否则不会在try-except-else中引发错误
但是,创建过程并不完美(它实际上从互联网获取,并可能由于几个原因失败),我注意到,当这种失败不会引发。我得到的唯一信息是该值没有被定义
NameError: name 'value' is not defined
由于错误可以有很多,我非常感谢来查看错误的完整引用的其他条款中
请注意:所有的尝试都可以引发KeyError,并且实例化过程不能引发这个错误,它总是其他的东西。这里是一个示例代码:
任何人有任何想法,为什么else子句不提高?有没有更好的方法来写这个?
感谢,
编辑:增加治疗的嵌套的try内在价值。 这导致我相信嵌套的尝试不起作用,因为嵌套的错误最终会在最外层之后引发。 即仅在外部尝试完成后引发内部错误。
这可能会导致一个新的问题:如何正确地在except子句中引发错误?
如果你得到两个''KeyError','finally'试图使用'value'时会发生什么? – user2357112
什么也没有,因为它在嵌套的'except'中被引发,所以它不会到达'finally'。 – pekapa
“它没有达到'最后'” - 不,它确实如此。这就是'终于'的整点。 – user2357112