Comment gérer efficacement les erreurs dans le module de requêtes Python ?

Linda Hamilton
Libérer: 2024-11-20 02:01:01
original
618 Les gens l'ont consulté

How to Handle Errors in Python Requests Module Effectively?

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)
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal