Warum Java ArrayIndexOutOfBound Exception erweitert IndexOutofBound Exception nicht Throwable?

8

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?

    
Amith 16.10.2013, 08:47
quelle

4 Antworten

7

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%     
afsantos 16.10.2013, 09:10
quelle
9

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.

    
BobTheBuilder 16.10.2013 08:52
quelle
1

Weil ArrayIndexOutOfBoundsException ein Subtyp von IndexOutOfBoundsException ist.

    
galovics 16.10.2013 08:52
quelle
1

Hier kommt die Vererbung ins Spiel und hilft, die Ebenen der Vererbung sauber und fokussiert zu halten, mit dem Hauptziel der Erweiterbarkeit. Da sind falsche Indizes nicht nur in Array sondern auch in String usw. HTH

    
Cleonjoys 16.10.2013 09:00
quelle

Tags und Links