Ich habe Zweifel in Exception with Inheritance
.
warum
public class ArrayIndexOutOfBoundsException extends IndexOutOfBoundsException
und dann
public class IndexOutOfBoundsException extends RuntimeException
und dann
public class RuntimeException extends Exception
Warum nicht
public class ArrayIndexOutOfBoundsException extends Exception
Warum wird diese Hierarchie beibehalten? Jede Anleitung ist hilfreich?
Das soll eine Hierarchie ergeben, die Sinn macht, und dient auch dazu, verwandte Ausnahmen zu gruppieren.
Wenn Sie wissen, was ein IndexOutOfBoundsException
ist, und jemand Ihnen eine weitere Ausnahme gibt, die dieses erweitert, können Sie sofort Informationen aus dieser Tatsache sammeln. In diesem Fall halten einige der beteiligten Objekte Indizes innerhalb eines bestimmten Bereichs.
Wenn jede Ausnahme um Exception
oder RuntimeException
erweitert wurde (unabhängig davon, ob ihr Vorkommen aktiviert oder nicht aktiviert ist) und ihr Name etwas unklar ist, haben Sie keine Ahnung, was sie darstellen könnte.
Betrachten Sie den folgenden Code.
%Vor% Das liegt daran, dass ArrayIndexOutOfBoundsException
auch ein IndexOutOfBoundsException
und RuntimeException
ist.
In Ihrem Vorschlag ist ArrayIndexOutOfBoundsException
nur Exception
.
Wenn Sie also nur RuntimeException
fangen wollen, wird ArrayIndexOutOfBoundsException
nicht abgefangen.
Tags und Links java inheritance exception