Gestion des exceptions lors de la communication de l'API Python

Lors de la création d'un BOT de trading automatique pour la monnaie virtuelle Lors de l'utilisation de l'API de l'échange, des erreurs sont fréquemment détectées côté échange. La gestion des exceptions a été implémentée comme contre-mesure. Je vais le laisser comme mémo pour moi-même pour ne pas l'oublier.

Qu'est-ce que la gestion des exceptions?

C'est une simple contre-mesure telle que "erreur de serveur". Même si votre code est correct, vous pouvez toujours obtenir une erreur lors de l'exécution. Par exemple, lorsque vous faites une demande à un serveur externe, le serveur est occupé ou Par exemple, si le serveur ne fonctionne pas en raison d'une maintenance temporaire Une erreur de serveur (code d'erreur) etc. sera renvoyée comme résultat de la réponse. Surtout pour les programmes qui s'exécutent automatiquement, tels que le trading automatique BOT Ce serait un problème s'il était arrêté à chaque fois en raison d'une erreur du serveur. .. .. (Ce n'est plus un BOT de trading automatique)

En guise de contre-mesure, vous pouvez éviter les erreurs inattendues en écrivant une instruction «try-except» (gestion des exceptions).

Code d'état HTTP

Vous pouvez voir si vous avez obtenu la bonne réponse à l'écureuil en regardant le code d'état HTTP. Ce qui suit fait partie du code d'état HTTP, et la classification principale est comme ça. J'ai souvent renvoyé des erreurs dans les années 500.

--100s: Traitement --200s: succès --300s: redirection -400 series: erreur client --500s: erreur de serveur

sample.py


response = requests.get("https://***********")
print(response.status_code)

Vous pouvez vérifier le code d'état HTTP avec Response object .status_code comme le code ci-dessus.

instruction try-except

sample.py


try:
    response = requests.get("https://***********")
    response.raise_for_status() # 
    print(response.status_code)
except requests.exceptions.RequestException as e:
    print("Erreur: ",e)

Une exception peut se produire dans la partie try:, mais le processus que vous souhaitez exécuter Décrivez le traitement lorsqu'une exception se produit dans la partie ʻexcept: `.

Dans le cas du code ci-dessus, la communication de la demande est effectuée vers le serveur externe par la méthode GET et le résultat de la réponse est Vérifiez le code d'état HTTP avec la méthode rise_for_status (), et s'il est dans les années 200, seule la partie try: sera exécutée. Au contraire, si le code d'état HTTP est différent des 200, on considère qu'une exception s'est produite. ʻSauf: `La partie est exécutée.

La méthode rise_for_status () vérifie si le code d'état HTTP est dans les 200 et S'il n'est pas dans les années 200, il lève une exception, c'est-à-dire qu'il crache une erreur et s'arrête.

except est écrit comme sauf le type d'exception comme nom de variable: Les objets d'exception (tels que les messages d'erreur) peuvent être stockés et utilisés dans des variables. N'importe quel nom peut être spécifié pour le nom de la variable, mais il est courant d'écrire ʻe ou ʻerr. Vous pouvez vérifier les détails de l'erreur en générant la variable. Pour les types d'exception, recherchez «gestion des exceptions de nom de bibliothèque», «gestion des erreurs de nom de bibliothèque», etc. La plupart du temps, vous voudrez peut-être savoir.

clause else

sample.py


try:
    response = requests.get("https://***********")
    response.raise_for_status()
except requests.exceptions.RequestException as e:
    print("Erreur: ",e)
else:
    print("Traité avec succès")

Dans la partie ʻelse: , décrivez le traitement à effectuer après l'achèvement normal sans exception. Si une exception se produit et que la partie ʻexcept: est exécutée, la partie ʻelse:` n'est pas exécutée.

clause enfin

sample.py


try:
    response = requests.get("https://***********")
    response.raise_for_status()
except requests.exceptions.RequestException as e:
    print("Erreur: ",e)
else:
    print("Traité avec succès")
finally:
    print("Toujours traiter à la sortie")

Dans la partie finally:, décrivez le processus que vous souhaitez exécuter à la fin, quelle que soit l'occurrence d'une exception. Vous pouvez également utiliser ʻelse: et finally: en même temps. Au moment de la fin normale, le processus de finally:est exécuté après que le processus de ʻelse:soit exécuté.

Recommended Posts

Gestion des exceptions lors de la communication de l'API Python
Gestion des exceptions Python
Gestion des exceptions Python
Python, à propos de la gestion des exceptions
pip installer les erreurs de gestion de mysql pendant python
Gestion des exceptions
J'ai essayé de résumer la gestion des exceptions Python
[Introduction à l'application Udemy Python3 +] 65. Gestion des exceptions
Un chercheur d'une société pharmaceutique a résumé la gestion des exceptions de Python
Gestion des exceptions Python un peu plus pratique
Importation de modules et gestion des exceptions en python
Gestion des erreurs Python
gestion des exceptions boto3
Gestion des fuseaux horaires Python
Manipuler yaml avec python
Communication série avec python
UnicodeEncodeError: 'cp932' pendant le scraping Python
Manipulation de json en python
[Hikari-Python] Chapitre 07-01 Gestion des exceptions (erreurs et exceptions)
Message d'exception en Python
API Evernote en Python
Liste des API Python pour OpenCV3
Câblage Communication Pi-SPI avec Python
Gestion des points décimaux Python
Comment gérer l'hexadécimal en Python3
Communication HTTP avec Python
API C en Python 3
Mémo de l'API TensorFlow (Python)
Liste des classes d'exception Python
Fizzbuzz avec gestion des exceptions
Hit API de Mastodon en Python
Utiliser l'API Trello avec python
AWS CDK-Lambda + API Gateway (Python)
API Web EXE par Python
Utiliser l'API Twitter avec Python
[Python] Transmission de valeurs pendant le multi-traitement
Introduction à la communication série [Python]
python> Gestion des tableaux 2D
Manipulation de python sur mac
API Web avec Python + Falcon
Afficher la communication Python avec Fiddler
API Blender Python dans Houdini (Python 3)
Appelez l'API avec python3.
Utiliser l'API subsonique avec python3
Conseils relatifs aux API Google Drive (Python)
Traitement des URL relatives en python
Utilisez l'API e-Stat de Python
[Hikari-Python] Chapitre 07-02 Gestion des exceptions (exécution continue du programme par gestion des exceptions)