try语句不会创建新的作用域,但是
text如果调用
urllib.request.urlopen引发异常,则不会设置该语句。您可能希望
print(text)在
else子句中使用该行,以便仅在没有异常的情况下才执行该行。
try: url = "http://www.google.com" page = urllib.request.urlopen(url) text = page.read().depre('utf8')except (ValueError, RuntimeError, TypeError, NameError): print("Unable to process your request dude!!")else: print(text)如果以后
text需要使用,您真的需要考虑如果分配
page失败并且您无法致电,其值应该是什么
page.read()。您可以在
try语句之前给它一个初始值:
text = 'something'try: url = "http://www.google.com" page = urllib.request.urlopen(url) text = page.read().depre('utf8')except (ValueError, RuntimeError, TypeError, NameError): print("Unable to process your request dude!!")print(text)或在
else条款中:
try: url = "http://www.google.com" page = urllib.request.urlopen(url) text = page.read().depre('utf8')except (ValueError, RuntimeError, TypeError, NameError): print("Unable to process your request dude!!")else: text = 'something'print(text)


