Ich habe kürzlich festgestellt, dass Exception
mehrere Konstruktoren hat, die Throwable
als Parameter nehmen. Throwable
hat zwei Unterklassen, Error
und Exception
, und die gesamte Dokumentation gibt im Allgemeinen an, dass Sie nicht versuchen sollten, eine Error
zu fangen oder zu behandeln. Daher bin ich neugierig, warum Exception
eine Throwable
als Konstruktor Parameter anstelle von Exception
nimmt. Dies bedeutet, dass ein Exception
mit einer Error
als Ursache erstellt werden könnte und von der Anwendung verarbeitet werden könnte. Warum ist das der Fall?Warum nimmt Exception Throwable als Konstruktorparameter anstelle von Exception?
Sollten benutzerdefinierte Exception
Klassen dann nur Konstruktoren zur Verfügung stellen, die Exception
als Parameter annehmen?
Nur raten: vielleicht versuchen die Leute manchmal, Ausnahmen irgendwie zu protokollieren; und vielleicht ist das einfacher, wenn Sie einige Ihrer eigenen benutzerdefinierten Ausnahmen verwenden; und du lässt zu, dass solche Dinge um einen Throwable gewickelt werden. Oder vielleicht, die Sprache papas und mamas haben einfach nicht gedacht, dass man durch. – GhostCat
JAVADoc syas: * "Ein Fehler ist eine Unterklasse von Throwable, die auf ernsthafte Probleme hinweist, die eine sinnvolle Anwendung nicht zu beheben versuchen sollte. Die meisten dieser Fehler sind abnormale Bedingungen." * Aber es verbietet Ihnen nicht, sie zu fangen. – user2004685