为什么在Python中可以为未定义的异常使用except子句?

2024-10-03 19:21:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我的googlefu让我失望了。为什么下面的程序编译和运行时没有错误(python2和python3)?你知道吗

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

我想不出一个好的理由来解释为什么这不会导致错误。我知道它没有执行那个except子句,所以没有命中未定义的变量,但是看起来应该很容易理解。有人能给我解释一下吗?你知道吗


Tags: 程序错误somethingpython3blahprint未定义try
1条回答
网友
1楼 · 发布于 2024-10-03 19:21:44

如果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的本质。你知道吗

相关问题 更多 >