ablauflogik von ausnahmen

Status
Nicht offen für weitere Antworten.

shino

Mitglied
hallo zusammen.
ich hab ne frage (mal wieder).

ich hab die aufgabe, die ausgaben auf der kommandozeile auszugeben wenn die condition true oder false ist.

Java:
class Exceptions {
public static class E1 extends Exception {}
public static class E2 extends Exception {}
public static void main (String[] args) {
try {
System.out.print("Urs ");
m1();
System.out.print("Regula ");
} catch (E1 e) {
System.out.print("Kino ");
} catch (E2 e) {
System.out.print("allein ");
} finally {
System.out.print("nach ");
}
System.out.println("Hause ");
}
static void m1() throws E1, E2 {
try {
System.out.print("geht ");
if (condition==true)
throw new E1();
else
throw new E2();
} catch (E1 e) {
System.out.print("sehr ");
}
finally {
System.out.print("gerne ");
}
System.out.print("mit ");
}
}

hier der dazugehörige code, den ich anschauen soll. das problem ist, ich weiss nicht genau, wie ich anfangen soll :) kann mir jemand n kleinen schubs in die richtige richtung geben? :D
 

javimka

Top Contributor
Klar ist, dass zuerst "Urs " ausgegeben wird. Dann wird m1() aufgerufen, in der "geht " ausgegeben wird. Dann kommt die if-Abfrage, wobei ich jetzt nicht weiss, was condition genau sein soll. Je nachdem, wird nun entweder eine E1 oder E2 Exception geworfen. Falls es eine E1 Exception ist, wird sie im folgenden catch sofort aufgefangen und "sehr " ausgegeben. Unabhängig von der Exception wird dann das finally ausgeführt, also "gerne " ausgegeben. Wenn vorher E1 abgefangen wurde, wird nun auch noch "mit " ausgegeben, andernfalls nicht. Dann wird die Methode verlassen. Falls die E1 Exception abgefangen wurde, wird jetzt auch noch "Irene " ausgegeben. Falls es eine E2 Exception war, die geworfen wurde, wird sie erst jetzt im folgenden catch (E2 e) abgefangen und "allein " ausgegeben. Dann wird der finally-Block ausgeführt ("nach ") und dann der letzt print-Befehl noch "Hause ".
 

shino

Mitglied
müsste es nicht, wenn ich bei "mit" bin und wir E1 ausgeworfen haben "Regula" -> "Kino" und dann noch "nach" und "Hause"? und bei E2 dann entsprechend "Regula" und "Kino" weglassen, dafür "alleine" "nach" "Hause"?
 

javimka

Top Contributor
Wenn die E1 Exception bereits in m1() abgefangen wird, ist sie erledigt, dann bleiben weitere catch (E1 e) ignoriert.
 

shino

Mitglied
hmm irgendwie ist dieses zweite E1 ja völlig fehl am platz.

ich weiss nicht recht, die aufgaben stellung ist ein wenig dumm denk ich. wir sollen halt die ausgabe angeben, wenn condition=true bzw. condition=false.
der satz ergibt also wenn condition=true "Urs geht sehr gerne mit Regula nach Hause" und wenn condition=false "Urs geht allein nach Hause" seh ich das dann richtig?
wozu hat unser dozent denn da das "Kino" reingenommen? xD manchmal versteh ich die Welt nicht mehr :D
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben