WindowsError
是的子类OSError
。从例外文档中:
在发生Windows特定错误或错误编号与errno
值不对应时引发。该winerror
和strerror
值是从的返回值创建GetLastError()
并FormatMessage()
从Windows平台的API函数。该errno
值将值映射winerror
到相应的errno.h
值。这是的子类OSError
。
IOError
但是,您正在尝试捕捉,这不是WindowsError
;的父类。结果是捉住了OSError
也不足够WindowsError
。
更改您的代码以在此处使用正确的异常:
try:
os.mkdir(dir)
except OSError as e:
或使用WindowsError
; 这会将您的代码绑定到Windows平台。