2017-05-09 2 views
2

Ich mag den Grund (Regel in Java-Design) erkundigen, die mit Arrays wie der Umgang macht: für ArrayIndexOutOfBoundsExceptionGrund, dass Java-Code, der mit Arrays arbeitet, keine try-catch für ArrayIndexOutOfBoundsException benötigt?

public static void main(String args[]){ 
System.out.println(args[2]); 
} 

nicht erfordert einen Versuch und Haken?

Gibt es einige Ausnahmen, die implizit immer Methode throws zugewiesen von javac oder Java ist hier einfach inkonsistent?

Jede Antwort würde geschätzt, um einige Hinweise auf die Design-Spezifikationen/Doku über dieses Verhalten zu geben.

+1

können Sie zusätzliche Informationen zu überprüfen finden und Ausnahmen hier deaktivieren: http://stackoverflow.com/questions/3540613/please-explain-runtimeexception-in-java-and-where-it- sollte verwendet werden – Tobi

+1

Stellen Sie sich vor, was passieren würde, wenn Sie gezwungen wären, explizit alle möglichen NullPointerExceptions abzufangen. – Tobi

+0

Der Schlüssel zu mir ist dort: "Verwenden Sie geprüfte Ausnahmen für Bedingungen, von denen der Aufrufer vernünftigerweise erwartet werden kann, wiederherzustellen" vs "Laufzeitausnahmen verwenden, um Programmierfehler anzuzeigen.". – dounyy

Antwort

1

ArrayIndexOutOfBoundsException ist eine Unterklasse von RuntimeException, die es zu einer unkontrollierten Ausnahmen macht. Eine ungeprüfte Ausnahme muss nicht abgefangen werden und muss nicht in einer throws-Klausel deklariert werden.

Dies ist in der Javadoc von RuntimeException erklärte:

Runtime und ihre Unterklassen sind nicht markiert Ausnahmen. Ungeprüfte Ausnahmen müssen nicht in der throws-Klausel einer Methode oder eines Konstruktors deklariert werden, wenn sie durch die Ausführung der Methode oder des Konstruktors ausgelöst und außerhalb der Grenzen der Methode oder des Konstruktors weitergegeben werden können.

Verwandte Themen