python
import httpx
try:
r = httpx.get(url, timeout=10)
r.raise_for_status()
except httpx.HTTPStatusError as e:
print('Serverantwort mit Fehlercode:', e.response.status_code)
except httpx.TimeoutException:
print('Zeitüberschreitung')
except httpx.RequestError as e:
print('Netzwerkproblem:', e) # DNS-Fehler, Verbindung verweigert usw.
else:
daten = r.json()
| Fehler | Bedeutung |
|---|---|
httpx.HTTPStatusError |
raise_for_status() hat einen Fehlercode gefunden |
httpx.TimeoutException |
Zeitlimit überschritten |
httpx.RequestError |
Oberbegriff für Netzwerkprobleme (auch TimeoutException gehört dazu, deshalb steht sie davor) |
Die Reihenfolge der except-Blöcke zählt: Der erste passende gewinnt. Spezielle Fehler also vor allgemeinen.