Forum: PC-Programmierung Java Try catch mehrere Ausnahmen


von Martin (Gast)


Lesenswert?

Hallo zusammen,
habe ich das richtig verstanden das der try Block immer nur eine 
Ausnahme auswirft?( weil der try Block sofort verlassen wird nach einer 
Ausnahme)
1
try
2
{
3
  f1(x);
4
  f2(x);
5
}
6
catch(Exception1 e)
7
{
8
}
9
10
catch(Exception2 e)
11
{
12
}
wenn f1(x) eine Ausnahme löst wird f2 nie ausgeführt?
Vielen Dank

von Peter II (Gast)


Lesenswert?

Martin schrieb:
> wenn f1(x) eine Ausnahme löst wird f2 nie ausgeführt?

ja

von Dussel (Gast)


Lesenswert?

Du kannst aber verschiedene Typen von Exceptions abfangen. Wie genau das 
geht, weiß ich nicht mehr, aber prinzipiell geht es etwa so:
1
try
2
{
3
  f1(x);
4
  f2(x);
5
}
6
catch(IOException e)
7
{
8
}
9
catch(InvalidIrgendwasException e)
10
{
11
}
Wenn etwas nach der Exception ausgeführt werden soll, kommt das ans Ende 
in einen finally-Block.

von Klaus (Gast)


Lesenswert?

Fragen wir doch mal kurz andersherum: Wie würde der Code aussehen, der 
mehr als eine Ausnahme gleichzeitig wirft? (Nicht auswirft; auf Englisch 
heisst das Verb "to throw").

von Klaus (Gast)


Lesenswert?

OK. Jetzt denkt er erst einmal. So in drei Jahren kommt wohl die 
Antwort.

von Orakel (Gast)


Lesenswert?

Martin schrieb:
> habe ich das richtig verstanden das der try Block immer nur eine
> Ausnahme auswirft?

nein.

von c.m. (Gast)


Lesenswert?

1
try
2
{
3
  f1(x);
4
}
5
catch(IOException e)
6
{
7
 logbla
8
 try
9
 {
10
  f2(x);
11
 }
12
 catch(InvalidIrgendwasException e)
13
 { }
14
}

geht auch

von c.m. (Gast)


Lesenswert?

ah, oder mit "finally" weiter machen…

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

c.m. schrieb:
> geht auch

Ist aber doch ein vollkommen anderes verhalten....

Beim TE wird ohne Fehler imm f1 + f2 ausgeführt, bei dir wird f2 nur 
ausgeführt wenn f1 eine IOException wirft...

von Philipp K. (philipp_k59)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.