2012-01-29 13 views
26

Pythonライブラリ要求で例外を処理する方法は? たとえば、インターネットに接続されているPCが確認できますか?Pythonが例外処理を要求します

私は

try: 
    requests.get('http://www.google.com') 
except ConnectionError: 
    # handle the exception 

をしようとすると、それは私にエラー名ConnectionErrorを与えますが、あなたがrequests.ConnectionErrorをしたい、あなたはimport requestsをしたと仮定すると、

+0

あなたが扱うようにしようとしている例外のトレースバックを含めてください。 – AdamKG

答えて

58

が定義されていません。 ConnectionErrorは、requestsで定義される例外です。ここでAPI documentationを参照してください。明確にするため

+2

分かりやすくするためには、 'except requests.ConnectionError:'、 'import requests.ConnectionError'ではありません。 – StackG

+0

@StackG余分な分かりやすさをありがとう、私はクラスを直接インポートしようとしていました。 – Jazzepi

5

(これはお勧めしませんが)、それは

except requests.ConnectionError: 

ませ

import requests.ConnectionError 

 

でまた

except Exception: 
で一般的な例外をキャッチすることができます
1

実際には、requests.get()が生成できる可能性のある例外は、ConnectionErrorよりはるかに多くあります。ここで私は生産で見てきたいくつかある:

from requests import ReadTimeout, ConnectTimeout, HTTPError, Timeout, ConnectionError try: r = requests.get(url, timeout=6.0) except (ConnectTimeout, HTTPError, ReadTimeout, Timeout, ConnectionError): continue