异常被推迟了

时间:2016-12-05 19:16:42

标签: python exception

我在Python中有以下脚本:

import sys


for filename in sys.argv:
    with open(filename, mode='r') as f:
        print("Foobar")

如果我使用不存在的文件名作为参数启动脚本,我会得到一个异常,如预期的那样。但是,print()仍在执行,即使我预计它不是。

Foobar
Traceback (most recent call last):
  File "home/bin/ksp-increment-build", line 16, in <module>
    with open(filename, mode='r') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'asdads'

为什么会这样?

1 个答案:

答案 0 :(得分:6)

sys.argv的第一个元素是自己运行的脚本的路径,因此可以正确打开它。

第二个元素是不存在的文件名,它在打印函数之前抛出错误。