habe ich diese Methode:Handle Exception in der aufgerufenen Methode/Funktion Java/Android?
public void foo(){
int test = 5/0;
}
Und ich nenne es wie folgt aus:
try {
foo();
} catch (Exception e){
e.printStackTrace();
}
Dies fängt die ArithmeticException
, aber ich habe Fälle gesehen, wo ich eine Methode innerhalb try-catch
nennen, aber es doesn‘ t die Ausnahme fangen. Gibt es eine bestimmte Situation, in der die exception
nicht gefangen werden kann?
Hier ist ein Beispiel zur Klärung der Frage: Fängt der try-catch-Block in ActivityA
die Ausnahme in ActivityB
? Ich weiß, dass die Antwort negativ ist. Aber ich möchte die Logik dahinter wissen.
public class ActivityA extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
try {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
startActivity(new Intent(this, ActivityB.class));
} catch (Exception e){
e.printStackTrace();
}
}
}
Und ActivityB
:
public class ActivityB extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
int x = 5/0
}
}
An allen coolen Typen, die glauben, das eine doppelte Frage ist, mir bitte einen Link auf eine Frage auf Stackoverflow geben, die zu dieser sehr klaren Frage beantwortet: Hat einen Versuch -catch erfasst Ausnahmen, die in einer Methode auftreten, die darin aufgerufen wird?
Mögliches Duplikat von [Best Practices im Umgang mit Java-Ausnahmen] (https://stackoverflow.com/questions/7803110/best-practices-in-handling-java-exceptions) –
Versuchen Sie, die Ausnahme wie 'IllegalArgumentException' anzugeben. – F0XS
Bitte bearbeiten Sie Ihre Frage und erklären Sie, welche Fälle Sie gesehen haben, wo die Ausnahme ausgelöst, aber nicht abgefangen wurde. Welche Methode hast du angerufen? Was macht die Methode? Sind Sie sicher, dass es eine Ausnahme auslöst? Woher weißt du das? – RealSkeptic