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.
Antworten
Zu viele Anzeigen?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.
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.
- See previous answers
- Weitere Antworten anzeigen