2012-01-29 27 views
26

¿Cómo se manejan las excepciones con las solicitudes de la biblioteca de Python? Por ejemplo, ¿cómo verificar si la PC está conectada a internet?Python solicita manejo de excepciones

Cuando intento

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

me da el nombre de error ConnectionError no está definido

+0

por favor incluya el rastreo de la excepción que está tratando de manejar. – AdamKG

Respuesta

58

Suponiendo que hizo import requests, desea requests.ConnectionError. ConnectionError es una excepción definida por requests. Vea el API documentation aquí.

+2

para mayor claridad, es decir: 'excepto requests.ConnectionError:', NOT 'import requests.ConnectionError' – StackG

+0

@StackG Gracias por la claridad adicional, estaba tratando de importar la clase directamente. – Jazzepi

5

para mayor claridad, es decir

except requests.ConnectionError: 

NO

import requests.ConnectionError 

 

También se puede coger una excepción general (aunque esto no es recomendable) con

except Exception: 
1

En realidad, hay muchas más excepciones que requests.get() pueden generar que solo ConnectionError. Aquí hay algunos que he visto en la producción:

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