2012-01-29 7 views
26

Как обрабатывать исключения с запросами библиотеки python? Например, как проверить, подключен ли компьютер к Интернету?Обработка исключений Python

Когда я пытаюсь

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

это дает мне имя ошибки ConnectionError не определен

+0

Пожалуйста, включите отслеживающий исключительной ситуации вы пытаетесь справиться. – AdamKG

ответ

58

Предполагая, что вы сделали import requests, вы хотите requests.ConnectionError. ConnectionError является исключением, определяемым requests. См. Здесь API documentation.

+2

для ясности, то есть: 'except request.ConnectionError:', NOT '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

Смежные вопросы