Ich habe eine Android-Anwendung, die mit dem Internet verbindet. Ich fange alle möglichen Szenarien für die Verbindung auf und stelle fest, dass UnknownHostException
thrown
ist, wenn ich keine Internetverbindung habe. Ich bin hier ein wenig verwirrt, da das Erhalten einer UnknownHostException
bedeutet, dass die Anwendung eine Verbindung zum Internet herstellen konnte, aber die angegebene URL nicht finden konnte.
Bekomme ich die richtige Ausnahme? Können Sie mir erklären, warum ich eine UnknownHostException
bekomme?
Können Sie auch die spezifischen Ausnahmen für diese Szenarien angeben:
Ich würde es auch schätzen, wenn Sie mir mehr Szenarien und Ausnahmen geben könnten. Ich muss alle möglichen Verbindungen auffangen und die passendste Mitteilung anzeigen, abhängig von der Art des Verbindungsfehlers.
Das Erhalten einer UnknownHostException bedeutet, dass die Anwendung war in der Lage, eine Verbindung zum Internet herzustellen
Nein, tut es nicht. Dies bedeutet, dass die Anwendung den Hostnamen nicht auflösen konnte. Das könnte daran liegen, dass der Hostname nicht existiert oder weil er keine Verbindung zum Internet herstellen konnte, um ihn zu lösen.
Wenn keine Internetverbindung besteht.
Keine bestimmte Ausnahme. "Es gibt keine Internetverbindung" hat keine klar definierte Bedeutung. Die Bedingung wird in einen der folgenden Fehlermodi aufgelöst.
Wenn die URL nicht gefunden werden kann.
Wenn der Host nicht gefunden werden kann, UnknownHostException
. Wenn der Inhaltsteil der URL nicht gefunden werden kann, HTTP 404.
Wenn die Anfrage abgelaufen ist.
ConnectException
mit 'Zeitüberschreitung der Verbindung' als die Nachricht oder SocketTimeoutException
, wenn es sich um ein Lesezeitlimit handelt.
Wenn die Website nicht verfügbar ist.
ConnectException
mit 'Verbindung verweigert' als Nachricht.
Wenn der Zugriff verweigert wird.
HTTP 403.
Tags und Links android exception-handling exception connection