App absturz bei Exceptions

  • 2 Antworten
  • Letztes Antwortdatum
G

gerredtir

Neues Mitglied
0
hallo leute

ich habe ein problem, und zwar wenn meine app eine Exception wirft z.b. bei AsyncTasks stürzt die app ab.

ich möchte die Exception abfangen ohne das die app abstürzt wie würde das gehen?
 
Exceptions kannst du mithilfe von try und catch Blöcken abfangen.
Falls die Exception z.B. in der doInBackground Methode auftritt:
Code:
try {
//Iwas das eine Exception wirft
} catch (Exception e){
// Die Exception behandeln
}
Wobei Exception jetzt sehr allgemein ist, besser wäre wenn du die Exception genau benennst.
Wenn du einen AsyncTasks benutzt und du zum Beispiel eine Fehlermeldung mit einem Dialog oder ähnlichem anzeigen möchtest, musst du das dan in der onPostExecute Methode tun, da du nur da die UI updaten kannst.
Du könntest also in deiner abgeleiteten Klasse eine Exception Variable erstellen die solange null ist bist eine Exception auftritt.
In der onPostExecute Methode prüfst du dan ob die Exception null ist und gibst ggf einen Dialog oder sonstiges aus.

doInBackground:
Code:
try {
//Iwas das eine Exception wirft
} catch (Exception e){
// mException = e;
}
onPostExecute:
Code:
if (mException != null){
// Ieine Ausgabe
}
 
ja aber das problem ist das die exeption nicht in dem AsyncTask auftritt sondern auserhalb z.b.:

Code:
        TextView ts3 = (TextView) findViewById(R.id.ts3);
        
        ServerConnection ts3server = new ServerConnection();
        
        try {
            if(ts3server.execute(Server.TS3, Server.TS3).get())
            {
                ts3.setTextColor(Color.GREEN);
                ts3.setText("TS3 Server: Online");
            }else{
                ts3.setTextColor(Color.RED);
                ts3.setText("TS3 Server: Offline");
            }
        } catch (InterruptedException e) {
            Toast.makeText(this, "Fehler Code: IX/#004 bitte im Forum melden!", Toast.LENGTH_SHORT).show();  
            return;
        } catch (ExecutionException e) {
            Toast.makeText(this, "Fehler Code: XX/#004 bitte im Forum melden!", Toast.LENGTH_SHORT).show();  
            return;
        }
 

Ähnliche Themen

G
Antworten
0
Aufrufe
132
Gerdchen07
G
G
Antworten
1
Aufrufe
384
Gerdchen07
G
G
Antworten
13
Aufrufe
598
Gerdchen07
G
L
Antworten
2
Aufrufe
554
Lexub
L
migi01
Antworten
26
Aufrufe
1.990
migi01
migi01
Zurück
Oben Unten