为什么Python中可能有一个未定义异常的except子句?

时间:2014-02-11 07:01:06

标签: python

我的google-fu让我失望了。为什么以下程序编译并运行时没有错误(Python 2和3)?

try:
    print('something')
except ThisNameDoesNotExist:
    print('blah')

我想不出为什么这不会导致错误的充分理由。我得知它没有执行那个except子句,所以没有点击未定义的变量,但似乎应该很容易找到我。有人可以向我解释一下吗?

1 个答案:

答案 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的性质。