嵌入在函数中的代码块:
try:
os.makedirs(os.path.dirname(log))
except OSError:
pass
错误:
UnboundLocalError: local variable 'OSError' referenced before assignment
这可能是什么症状?
请您参考如下方法:
不幸的是,Python 2 异常捕获语法中存在一个令人困惑的来源。在函数的某处,您执行了如下操作:
except SomeError, OSError:
看起来它捕获了两种异常类型,但事实并非如此。 OSError 实际上被解释为您想要保存您正在捕获的 SomeError 实例的变量的名称。这意味着当您 try catch OSError 时:
except OSError:
OSError 指的是您没有意识到自己创建的局部变量。
要捕获多个异常类型,您需要将要捕获的类型列表括起来:
except (SomeError, OSError):
