Skip to main content
 首页 » 编程设计

python之无法弄清楚 Python 中的 UnboundLocalError

2025年05月04日16luoye11

嵌入在函数中的代码块:

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):