Try/Except-Fehlerbehandlung im Python-Anforderungsmodul
Die Verwendung des Anforderungsmoduls in Python ist eine bequeme Möglichkeit, API-Aufrufe und HTTP-Anfragen zu verarbeiten . Wenn während der Ausführung einer Anfrage ein Fehler auftritt, ist es wichtig, über eine robuste Fehlerbehandlung zu verfügen.
Ist dieser Code korrekt?
try: r = requests.get(url, params={'s': thing}) except requests.ConnectionError, e: print(e)
Dieser Code versucht um nur verbindungsbezogene Fehler abzufangen, indem die ConnectionError-Ausnahme behandelt wird. Dies deckt jedoch nicht alle möglichen Fehlerszenarien ab, denen das Modul „Anfragen“ begegnen kann.
Bessere Möglichkeiten zur Strukturierung der Fehlerbehandlung
Um sicherzustellen, dass alle potenziellen Fehler behandelt werden, Es wird empfohlen, die Basisausnahmeklasse „requests.Exceptions.RequestException“ abzufangen, anstatt bestimmte Ausnahmen wie z ConnectionError.
try: r = requests.get(url, params={'s': thing}) except requests.exceptions.RequestException as e: # This is the correct syntax raise SystemExit(e)
Alternativ können Sie bestimmte Ausnahmen separat behandeln und entsprechend unterschiedliche Maßnahmen ergreifen. Beispielsweise könnten Sie Zeitüberschreitungen anders behandeln als Verbindungsfehler.
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)
HTTP-Fehler abfangen
Wenn Sie Ausnahmen für HTTP-Fehler wie 401 Unauthorized auslösen möchten, Sie können die Methode Response.raise_for_status() verwenden.
try: r = requests.get('http://www.google.com/nothere') r.raise_for_status() except requests.exceptions.HTTPError as err: raise SystemExit(err)
Durch die gründliche Behandlung von Ausnahmen und die individuelle Anpassung des Verhaltens Je nach Fehlertyp können Sie sicherstellen, dass Ihr Code bei HTTP-Anfragen angemessen auf Fehler und Benutzereingaben reagiert.
Das obige ist der detaillierte Inhalt vonWie kann man Fehler im Python-Requests-Modul effektiv behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!