Gestion des erreurs Try/Except dans le module de requêtes Python
L'utilisation du module Requests dans Python est un moyen pratique de gérer les appels d'API et les requêtes HTTP. . Lorsqu'une erreur se produit lors de l'exécution d'une requête, il est essentiel de mettre en place une gestion robuste des erreurs.
Ce code est-il correct ?
try: r = requests.get(url, params={'s': thing}) except requests.ConnectionError, e: print(e)
Ce code tente pour intercepter uniquement les erreurs liées à la connexion en gérant l'exception ConnectionError. Cependant, cela ne couvre pas tous les scénarios d'erreur possibles que le module Requêtes peut rencontrer.
De meilleures façons de structurer la gestion des erreurs
Pour garantir que toutes les erreurs potentielles sont traitées, il est recommandé d'intercepter la classe d'exceptions de base request.exceptions.RequestException au lieu d'exceptions spécifiques comme ConnectionError.
try: r = requests.get(url, params={'s': thing}) except requests.exceptions.RequestException as e: # This is the correct syntax raise SystemExit(e)
Vous pouvez également gérer des exceptions spécifiques séparément et prendre différentes actions en conséquence. Par exemple, vous pouvez gérer les délais d'attente différemment des erreurs de connexion.
try: r = requests.get(url, params={'s': thing}) except requests.exceptions.Timeout: # Maybe set up for a retry, or continue in a retry loop except requests.exceptions.TooManyRedirects: # Tell the user their URL was bad and try a different one except requests.exceptions.RequestException as e: # catastrophic error. bail. raise SystemExit(e)
Détecter les erreurs HTTP
Si vous souhaitez déclencher des exceptions pour les erreurs HTTP telles que 401 non autorisées, vous pouvez utiliser la méthode Response.raise_for_status().
try: r = requests.get('http://www.google.com/nothere') r.raise_for_status() except requests.exceptions.HTTPError as err: raise SystemExit(err)
En gérant minutieusement les exceptions et en personnalisant le comportement en fonction du type d'erreur, vous pouvez vous assurer que votre code répond de manière appropriée aux erreurs et aux entrées de l'utilisateur lors des requêtes HTTP. .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!