我有這樣的代碼:如何獲取異常的實例類型?
try:
self.client.post(url, data, self.cookies, headers, auth, jsonrpc)
self.status = self.client.status
self.mytime = self.client.time
self.text = self.client.text
self.length = len(self.text)
except urllib2.URLError, error:
print error
self.exception = True
self.urrlib2 = True
if isinstance(error.reason, socket.timeout):
self.timeout = True
但有時我得到異常打印出這樣的:
URLError in POST > reason=The read operation timed out > <urlopen error The read operation timed out>
這些由except urllib2.URLError
處理。他們應該通過if isinstance(error.reason, socket.timeout)
測試,但他們不通過。
所以我想知道這個異常是什麼instance
。我怎樣才能做到這一點?
'型()'給你一個對象的類型或類的字符串表示。 –
所以你的意思是我應該在這裏輸入(error)'?我必須修改我的代碼,並且異常將需要幾個小時才能顯示...或者是type(error.reason)'? – dangonfast
'print type(error.reason)'將幫助您診斷它是什麼類型;沒有太多的答案,因此只是一個評論。 –