如何在 try/except 块中公开变量?
import urllib.request
try:
url = "http://www.google.com"
page = urllib.request.urlopen(url)
text = page.read().decode('utf8')
except (ValueError, RuntimeError, TypeError, NameError):
print("Unable to process your request dude!!")
print(text)
此代码返回错误
NameError: name 'text' is not defined
如何使可变文本在 try/except 块之外可用?
原文由 user3348051 发布,翻译遵循 CC BY-SA 4.0 许可协议
try
语句不会创建新范围,但是text
如果调用url lib.request.urlopen
引发异常-- 将不会被设置。您可能希望在 ---else
子句中使用 ---print(text)
行,以便仅在没有异常时执行。如果
text
需要稍后使用,你真的需要考虑它的价值应该是什么如果分配给page
失败并且你不能调用page.read()
。您可以在try
语句之前给它一个初始值:或者在
else
子句中: