2016-12-19 42 views
1

我有一段代碼,當它連接到的主機的IP地址錯誤時,會給我一個urllib3錯誤,並且也會阻止應用程序啓動。urllib3連接失敗的異常類型是什麼?

此連接嘗試在視圖中(而不是主視圖),我假設應用程序啓動時會調用此視圖。

我想寫一個try來檢查這個異常,但是,錯誤沒有提到它看到的異常類型。

問:在應用程序啓動時,我可以在try中指定什麼異常類型來處理此錯誤?

錯誤

Was unable to import app
Error: HTTPSConnectionPool(host='10.0.0.1', port=834): Max retries exceeded with url: /items (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 113] No route to host',))

在此先感謝。

+1

但它確實提到了它。 'from urllib3.exceptions import NewConnectionError' –

+0

當我設置'除了NewConnectionError:'我在我的皮棉看到,它不是一個公認的變量。 –

+0

您需要實際導入它 –

回答

2

感謝@ cricket_007

通過導入例外請求解決它。

from requests.exceptions import ConnectionError 

然後在try聲明中觸發。

try: 
    <<something>> 
except ConnectionError: 
    <<something>> 
0

在回答這個問題其實問,你可以通過其__bases__元組找出一個Python類的基類(ES)。例如,

>>> class MyZeroDivide(ZeroDivisionError): 
... pass 
>>> z = MyZeroDivide() # instance 
>>> z.__class__   
<class '__main__.MyZeroDivide'> # class 
>>> z.__class__.__bases__ 
(<type 'exceptions.ZeroDivisionError'>,) # base class(es) 
>>> z.__class__.__bases__[0].__bases__ 
(<type 'exceptions.ArithmeticError'>,) # up a level 
>>> z.__class__.__bases__[0].__bases__[0].__bases__ 
(<type 'exceptions.StandardError'>,)  # up two levels 
相關問題