首先,我的問題與this one非常相似。我想urllib.urlopen()的超時生成一個我可以處理的異常。如何處理Python 3中的urllib超時?
這不屬於URLError嗎?
try:
response = urllib.request.urlopen(url, timeout=10).read().decode('utf-8')
except (HTTPError, URLError) as error:
logging.error(
'Data of %s not retrieved because %s\nURL: %s', name, error, url)
else:
logging.info('Access successful.')
錯誤消息:
RESP = urllib.request.urlopen(REQ,超時= 10).read()進行解碼( 'UTF-8')
文件「/ USR /lib/python3.2/urllib/request.py「,第138行,在urlopen
return opener.open(url,data,timeout)
文件」/usr/lib/python3.2/urllib/request.py 「,第369行開放
response = self._open(req,data)
File」 /usr/lib/python3.2/urllib/request.py「,第387行,在_open
'_open',req)
文件」/usr/lib/python3.2/urllib/request.py「,行347,在_call_chain
結果= FUNC(*參數)
文件 「/usr/lib/python3.2/urllib/request.py」,線1156,在http_open
返回self.do_open(http.client.HTTPConnection ,REQ)
文件 「/usr/lib/python3.2/urllib/request.py」,線1141,在do_open
R = h.getresponse()
文件「/usr/lib/python3.2/ http/client.py「,第1046行,請求回覆
sponse.begin()
文件 「/usr/lib/python3.2/http/client.py」,線路346,在開始
版本,狀態原因= self._read_status()
文件「的/ usr/lib/python3.2/http/client.py「,第308行,在_read_status中
line = str(self.fp.readline(_MAXLINE + 1),」iso-8859-1「)
」/ usr/LIB/python3.2/socket.py」,線路276,在readinto
返回self._sock.recv_into(b)中
socket.timeout:超時
有一個主要茶當他們將urllib
和urllib2
模塊重新組織爲urllib
時,他們從Python 3開始。是否有可能導致這種變化?
發現異常類型的一個簡單方法是'除了異常作爲e:print(type(e))' 。假設你可以重現你的例外,那就是。 – polvoazul 2018-02-16 20:44:39