gpt4 book ai didi

python - 处理 urllib2.URLError 时获取 URL

转载 作者:太空狗 更新时间:2023-10-29 21:40:57 28 4
gpt4 key购买 nike

这特别适用于 urllib2,但更普遍的是自定义异常处理。如何通过引发的异常将附加信息传递给另一个模块中的调用函数?我假设我会使用自定义异常类重新引发,但我不确定技术细节。

我不会用我尝试过但失败过的代码来污染示例代码,我只会将其呈现为几乎是空白的状态。我的最终目标是让示例中的最后一行正常工作。

#mymod.py
import urllib2

def openurl():
req = urllib2.Request("http://duznotexist.com/")
response = urllib2.urlopen(req)

#main.py
import urllib2
import mymod

try:
mymod.openurl()
except urllib2.URLError as e:
#how do I do this?
print "Website (%s) could not be reached due to %s" % (e.url, e.reason)

最佳答案

您可以添加信息,然后重新引发异常。

#mymod.py
import urllib2

def openurl():
req = urllib2.Request("http://duznotexist.com/")
try:
response = urllib2.urlopen(req)
except urllib2.URLError as e:
# add URL and reason to the exception object
e.url = "http://duznotexist.com/"
e.reason = "URL does not exist"
raise e # re-raise the exception, so the calling function can catch it

#main.py
import urllib2
import mymod

try:
mymod.openurl()
except urllib2.URLError as e:
print "Website (%s) could not be reached due to %s" % (e.url, e.reason)

关于python - 处理 urllib2.URLError 时获取 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6509337/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com