2 Stimmen

Ausnahmen: catch (Exception ex) Frage

Ich verstehe, dass wenn catch von einem Objektargument abgeleitet von der Basisklassen-Ausnahme gefolgt wird, es nur diese Ausnahme behandeln wird. Aber ich verstehe nicht, warum ich eine Variable dieses Typs deklarieren muss, die "ex" oder was auch immer. Ich weiß, dass sie mit dem Ausnahmeobjekt "gefüllt" wird..aber ich verstehe es einfach nicht gut.

7voto

Jon Skeet Punkte 1325502

Sie müssen keine Variable angeben. Zum Beispiel können Sie folgendes schreiben:

try
{
    ...
}
catch (IOException)
{
    // Etwas tun
}

Allerdings möchten Sie in der Regel die Ausnahme protokollieren oder eine Aktion durchführen, die davon abhängt. (Das Protokollieren ist meiner Erfahrung nach mit Abstand die häufigste Verwendung einer Ausnahmevariablen - oder sie als "innere Ausnahme" für eine neue Ausnahme zu verwenden.) Das Deklarieren einer Variablen in der catch-Anweisung ist der Weg dazu.

1voto

Sie müssen keine Variable deklarieren. Sie können es so haben:

try
{
   //etwas hier...
}
catch (ThreadAbortException)
{
   //nur ThreadAbortException behandeln...
}

1voto

hungryMind Punkte 6817
try {
}
catch(SQLException){
//etwas tun, ohne die Ausnahmeinformationen zu verwenden
}
catch(OtherException ex){
//etwas anderes tun, die Ausnahmeinformationen verwenden
}
catch(Exception ex){
//etwas anderes tun
Logger.Log(ex);
}

0voto

BoltClock Punkte 660640

Wenn Sie keine Variable deklarieren, um die gefangene Ausnahme zu enthalten, wie wollen Sie dann das Ausnahmeobjekt analysieren, das geworfen wurde?

Wenn es Ihnen jedoch egal ist, sind Sie nicht gezwungen, es zu deklarieren. Aber im Allgemeinen ist es eine gute Idee, falls Sie etwas damit machen möchten.

0voto

Rozuur Punkte 4025

Sie können es verwenden, um weitere Informationen über diese Ausnahme zu finden

("Ausnahme-Nachricht: {0}", ex.Message) oder 

über die innere Ausnahme, ex.InnerException;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X