我的google-fu让我失望了。为什么以下程序编译并运行时没有错误(Python 2和3)?
try:
print('something')
except ThisNameDoesNotExist:
print('blah')
我想不出为什么这不会导致错误的充分理由。我得知它没有执行那个except子句,所以没有点击未定义的变量,但似乎应该很容易找到我。有人可以向我解释一下吗?
答案 0 :(得分:2)
如果Python实际评估该行,则执行会收到错误。只要有异常,它就会看到ThisNameDoesNotExist
不存在:
>>> try:
... print(1/0)
... except ThisNameDoesNotExist:
... print('blah')
...
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
NameError: name 'ThisNameDoesNotExist' is not defined
否则,没有错误,因为Python的性质。