Исключений питон, обработка запросов
Как обрабатывать исключения с запросами библиотеки python? Например, как проверить, подключен ли ПК к интернету?
когда я пытаюсь
try:
requests.get('http://www.google.com')
except ConnectionError:
# handle the exception
это дает мне имя ошибка ConnectionError
Не определен
4 ответов
предполагая, что вы сделали import requests
вы хотите requests.ConnectionError
. ConnectionError
является исключением, определяемым requests
. Вижу документация API здесь.
таким образом, код должен быть :
try:
requests.get('http://www.google.com')
except requests.ConnectionError:
# handle the exception
для ясности, что это
except requests.ConnectionError:
не
import requests.ConnectionError
вы также можете поймать общее исключение (хотя это не рекомендуется) с
except Exception:
на самом деле, есть гораздо больше исключений, которые 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
включить модуль запросов с помощью import requests
.
всегда хорошо реализовать обработку исключений. Это не только помогает избежать неожиданного выхода скрипта, но также может помочь регистрировать ошибки и уведомления информации. При использовании запросов Python я предпочитаю ловить такие исключения:
try:
res = requests.get(adress,timeout=30)
except requests.ConnectionError as e:
print("OOPS!! Connection Error. Make sure you are connected to Internet. Technical Details given below.\n")
print(str(e))
continue
except requests.Timeout as e:
print("OOPS!! Timeout Error")
print(str(e))
continue
except requests.RequestException as e:
print("OOPS!! General Error")
print(str(e))
continue
except KeyboardInterrupt:
print("Someone closed the program")