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.
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.
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.
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.
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.
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