Ausnahmebehandlung während der Python-API-Kommunikation

Beim Erstellen eines automatischen Handels-BOT für virtuelle Währung Bei Verwendung der API des Austauschs werden häufig Fehler auf der Austauschseite erkannt. Die Ausnahmebehandlung wurde als Gegenmaßnahme implementiert. Ich werde es als Memo für mich selbst hinterlassen, damit ich es nicht vergesse.

Was ist Ausnahmebehandlung?

Dies ist eine einfache Gegenmaßnahme wie "Serverfehler". Selbst wenn Ihr Code korrekt ist, wird zur Laufzeit möglicherweise ein Fehler angezeigt. Wenn Sie beispielsweise eine Anfrage an einen externen Server stellen, ist der Server ausgelastet oder Zum Beispiel, wenn der Server aufgrund vorübergehender Wartung nicht ausgeführt wird Ein Serverfehler (Fehlercode) usw. wird als Antwort zurückgegeben. Insbesondere für Programme, die automatisch ausgeführt werden, wie z. B. BOT für den automatischen Handel Es wäre ein Problem, wenn es jedes Mal aufgrund eines Serverfehlers gestoppt würde. .. .. (Kein automatischer Handels-BOT mehr)

Als Gegenmaßnahme können Sie unerwartete Fehler verhindern, indem Sie eine "try-exception" -Anweisung (Ausnahmebehandlung) schreiben.

HTTP-Statuscode

Sie können anhand des HTTP-Statuscodes feststellen, ob Sie die richtige Antwort auf das Eichhörnchen erhalten haben. Das Folgende ist ein Teil des HTTP-Statuscodes, und die Hauptklassifizierung ist wie folgt. Ich habe in den 500ern oft Fehler zurückgegeben.

sample.py


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

Sie können den HTTP-Statuscode mit dem Antwortobjekt .status_code wie im obigen Code überprüfen.

Try-Except-Anweisung

sample.py


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

Eine Ausnahme kann im Teil try: auftreten, aber der Prozess, den Sie ausführen möchten Beschreiben Sie die Verarbeitung, wenn im Teil "ausgenommen:" eine Ausnahme auftritt.

Im Fall des obigen Codes erfolgt die Anforderungskommunikation zum externen Server durch die GET-Methode und das Antwortergebnis ist Überprüfen Sie den HTTP-Statuscode mit der Methode "raise_for_status ()". Wenn er sich in den 200er Jahren befindet, wird nur der Teil "try:" ausgeführt. Im Gegenteil, wenn der HTTP-Statuscode nicht 200s ist, wird davon ausgegangen, dass eine Ausnahme aufgetreten ist. Der Teil "außer:" wird ausgeführt.

Die Methode raise_for_status () prüft, ob der HTTP-Statuscode in den 200ern und liegt Wenn es nicht in den 200ern ist, löst es eine Ausnahme aus, das heißt, es spuckt einen Fehler aus und stoppt.

Ausgenommen ist geschrieben als Ausnahmetyp als Variablenname: Ausnahmeobjekte (z. B. Fehlermeldungen) können gespeichert und in Variablen verwendet werden. Der Variablenname kann ein beliebiger Name sein, es ist jedoch üblich, "e" oder "err" zu schreiben. Sie können die Details des Fehlers überprüfen, indem Sie die Variable ausgeben. Suchen Sie für Ausnahmetypen nach "Ausnahmebehandlung für Bibliotheksnamen", "Fehlerbehandlung für Bibliotheksnamen" usw. Meistens möchten Sie es vielleicht wissen.

sonst Klausel

sample.py


try:
    response = requests.get("https://***********")
    response.raise_for_status()
except requests.exceptions.RequestException as e:
    print("Error: ",e)
else:
    print("Erfolgreich verarbeitet")

Beschreiben Sie im Teil else: die Verarbeitung, die nach der normalen Beendigung ausnahmslos ausgeführt werden soll. Wenn eine Ausnahme auftritt und der Teil "außer:" ausgeführt wird, wird der Teil "else:" nicht ausgeführt.

Endlich Klausel

sample.py


try:
    response = requests.get("https://***********")
    response.raise_for_status()
except requests.exceptions.RequestException as e:
    print("Error: ",e)
else:
    print("Erfolgreich verarbeitet")
finally:
    print("Immer beim Beenden verarbeiten")

Beschreiben Sie im Teil finally: den Prozess, den Sie am Ende ausführen möchten, unabhängig vom Auftreten einer Ausnahme. Sie können auch gleichzeitig "else:" und "finally:" verwenden. Zum Zeitpunkt der normalen Beendigung wird die Verarbeitung von "else:" und dann die Verarbeitung von "finally:" ausgeführt.

Recommended Posts

Ausnahmebehandlung während der Python-API-Kommunikation
Behandlung von Python-Ausnahmen
Behandlung von Python-Ausnahmen
Python, über die Ausnahmebehandlung
pip install mysql-Handling Fehler während Python
Ausnahmebehandlung
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
[Einführung in die Udemy Python3 + -Anwendung] 65. Ausnahmebehandlung
Ein Forscher eines Pharmaunternehmens fasste die Ausnahmebehandlung von Python zusammen
Python-Ausnahmebehandlung etwas bequemer
Modulimport und Ausnahmebehandlung in Python
Python-Fehlerbehandlung
boto3 Ausnahmebehandlung
Python-Zeitzonenbehandlung
Umgang mit Yaml mit Python
Serielle Kommunikation mit Python
UnicodeEncodeError: 'cp932' während des Python-Scrapings
Umgang mit Json in Python
[Hikari-Python] Kapitel 07-01 Ausnahmebehandlung (Fehler und Ausnahmen)
Ausnahmemeldung in Python
Evernote-API in Python
Liste der Python-APIs für OpenCV3
WiringPi-SPI-Kommunikation mit Python
Pythons Umgang mit Dezimalstellen
Umgang mit Hexadezimal in Python3
HTTP-Kommunikation mit Python
C-API in Python 3
TensorFlow API-Memo (Python)
Liste der Python-Ausnahmeklassen
Fizzbuzz mit Ausnahmebehandlung
Hit Mastodons API in Python
Verwenden Sie die Trello-API mit Python
AWS CDK-Lambda + API-Gateway (Python)
EXE Web API von Python
Verwenden Sie die Twitter-API mit Python
[Python] Übergabe von Werten während der Mehrfachverarbeitung
Einführung in die serielle Kommunikation [Python]
Python> Umgang mit 2D-Arrays
Umgang mit Python auf Mac
Web-API mit Python + Falcon
Blender Python API in Houdini (Python 3)
Rufen Sie die API mit python3 auf.
Verwenden Sie die Unterschall-API mit Python3
Google Drive API-Tipps (Python)
Relative URL-Verarbeitung in Python
Verwenden Sie die e-Stat-API von Python
[Hikari-Python] Kapitel 07-02 Ausnahmebehandlung (Kontinuierliche Ausführung des Programms durch Ausnahmebehandlung)