App-Crash verhindern nach MalformedURLException

  • Antworten:1
  • Bentwortet
Jan M.
  • Forum-Beiträge: 9

28.08.2012, 15:15:31 via Website

Guten Tag,

ich schreibe an einer App, bei der die Möglichkeit bestehen soll eine Textdatei aus dem Internet herunter zu laden.
Das Herunterladen funktioniert einwandfrei, wenn ich die richtige URL angebe. Sobald ich eine falsche url angebe, soll und wird eine Exception geworfen. Mein Ziel ist es dem Nutzer eine Meldung auszugeben, dass eine falsche url eingegeben wurde. Momentan schmiert mir allerdings die App bei der Eingabe einer falschen URL ab.

Besteht die Möglichkeit diese Art der Fehlerbehandlung in die Tat umzusetze?

Hier mal ein Ausschnitt aus meinem Code.


1public String BlubBLaBlub(String url) {
2 InputStreamReader inputStreamReader = null;
3 BufferedReader bufferedReader = null;
4 StringBuilder stringBuilder = null;
5 String line = "";
6 String result = "";
7
8
9 try {
10 URL url = new URL("EINGABE DES NUTZERS");
11 inputStreamReader = new InputStreamReader(urlConnection.openStream(), "iso-8859-1");
12 bufferedReader = new BufferedReader(inputStreamReader, 8);
13 stringBuilder = new StringBuilder();
14
15 while((line = bufferedReader.readLine()) != null) {
16 stringBuilder.append(line + "\n");
17 }
18
19 bufferedReader.close();
20 inputStreamReader.close();
21
22 result = stringBuilder.toString();
23
24 } catch(MalformedURLException e) {
25 e.printStackTrace();
26 return null;
27 } catch(IOException e) {
28 e.printStackTrace();
29 return null;
30 } catch (Exception e) {
31 e.printStackTrace();
32 return null;
33 }
34
35 return result;
36 }
37}

Gruß

— geändert am 28.08.2012, 15:17:22

Antworten
Jan M.
  • Forum-Beiträge: 9

28.08.2012, 16:54:00 via Website

Habe den Fehler dann selbst noch gefunden. Das Problem war der Hintergrundprozess, indem die ganzen HTTP Anfragen statt finden.
Ich kann zwar nicht genau erklären warum das so ist, aber scheinbar führt dieser Quasiparallele Prozess zu einem Laufzeitproblem, der meine App abstürzen ließ.

Nun habe ich für das Testen der URL Adresse einen eigenen AsyncTaks erstellt, der mir entweider ein "true" oder "false" zurückliefert.
Je nach Ergebnis wird dann versucht die Adresse herunterzuladen oder eben nicht ( im falle eine falschen url).

Gruß

Antworten