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

E
Antworten
11
Aufrufe
1.158
evgkop
E
nowo84
Antworten
2
Aufrufe
430
nowo84
nowo84
F
Antworten
9
Aufrufe
528
swa00
swa00
G
Antworten
0
Aufrufe
270
Gerdchen07
G
Zurück
Oben Unten