windows上的os.rename引发WindowsError而不是OSError



Python文档说

os.rename(src,dst)

在Windows上,如果dst已经存在,即使它是一个文件,也会引发OSError。。。

但是,对我来说,它会引发WindowsError。文件中有错误吗?

问题的第二部分(更一般,但受到上述问题的启发):

UPD对不起,问题的第二部分不正确。WindowsError确实被except OSError捕获了。

由于OSError是WindowsError的一个超类,只需捕获OSError

FWIW,核心开发人员可以自由地提出比文档承诺的最低限度更具体的异常。

此外,以下代码对我来说很好(运行在WindowsXP上的Python2.7.2):

try:
    raise os.rename('nonexisting_file', 'def')
except OSError:
    print 'caught'

最新更新