Python 文档说 that
但是,对我来说,它会引发 WindowsError。文档中是否有错误?
问题的第二部分(更笼统,但受到上述问题的启发):
UPD 对不起,问题的第二部分不正确。 WindowsError 确实被 except OSError
捕获了。
最佳答案
由于 OSError 是 WindowsError 的父类(super class),因此只需捕获 OSError。
FWIW,核心开发人员可以自由地提出比文档 promise 的最低限度更具体的异常。
此外,以下代码对我来说很好用(在 WindowsXP 上运行的 Python2.7.2):
try:
raise os.rename('nonexisting_file', 'def')
except OSError:
print 'caught'
关于python - Windows 上的 os.rename 引发 WindowsError 而不是 OSError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8890010/