how handle arrayindexoutofboundsexception java
Dieses Lernprogramm enthält eine detaillierte Erläuterung zu einer wichtigen Ausnahme, die von Java-Arrays ausgelöst wird, d. H. ArrayIndexOutOfBoundsException mit einfachen Beispielen:
Wir haben in unseren vorherigen Tutorials alles über Arrays gelernt. Arrays sind statischer Natur und ihre Dimension oder Größe wird zum Zeitpunkt ihrer Deklaration bestimmt. Wir wissen auch, dass diese Größe oder die Anzahl der für das Array deklarierten Elemente fest und von 0 nummeriert sind.
Manchmal ist die Programmlogik so, dass das Programm versucht, von einem nicht vorhandenen Index auf das Element zuzugreifen. Beispielsweise, Aufgrund von Störungen in einem Programm versucht ein Programm möglicherweise, auf die 11 zuzugreifenthElement im Array von 10 Elementen. Dies führt zu einem abnormalen Zustand.
=> Schauen Sie sich das komplette Java-Training für Anfänger an
Java bietet eine Ausnahme im Paket 'java.lang', die ausgelöst wird, wenn auf einen nicht vorhandenen Array-Index zugegriffen wird. Dies wird als 'ArrayIndexOutOfBoundsException' bezeichnet.
Was du lernen wirst:
ArrayIndexOutOfBoundsException
Wie bereits erwähnt, löst der Compiler beim Versuch, auf Array-Elemente über eine bestimmte Länge oder einen negativen Index hinaus zuzugreifen, die 'ArrayIndexOutOfBoundsException' aus.
ArrayIndexOutOfBoundsException implementiert eine 'serialisierbare' Schnittstelle und leitet sich von der 'indexOutOfBoundsException' ab, die wiederum von der RuntimeException-Klasse abgeleitet ist, die eine Unterklasse der 'Ausnahme' -Klasse ist. Alle diese Klassen gehören zum Paket 'java.lang'.
ArrayIndexOutOfBoundsException ist eine nicht aktivierte Laufzeitausnahme und muss daher nicht explizit von einer Methode aufgerufen werden. Das folgende Klassendiagramm von ArrayIndexOutOfBoundsException zeigt die Vererbungshierarchie sowie die Konstruktoren für diese Ausnahme.
Klassendiagramm der ArrayIndexOutOfBoundsException
Wie bereits erläutert, verfügt die ArrayIndexOutOfBoundsException-Klasse über drei Oberklassen, d. H. Java.lang.exception, java.lang. runtimeException und java.lang.indexOutOfBoundsException.
Als nächstes sehen wir einige Beispiele für ArrayIndexOutOfBoundsException in Java.
Beispiel für eine ArrayIndexOutOfBounds-Ausnahme
Sehen wir uns das erste Beispiel an, in dem die ArrayIndexOutOfBounds-Ausnahme ausgelöst wird.
class Main { public static void main(String() args) { //array of subjects. There are 5 elements. String() subjects = {'Maths','Science','French','Sanskrit', 'English'}; //for loop iterates from 0 to 5 (length of array) for(int i=0;i<=subjects.length;i++) { //when ‘i’ reaches 5, it becomes invalid index and exception will be thrown System.out.print(subjects(i) + ' '); } }
Ausgabe:
Im obigen Programm haben wir Array-Themen, die aus 5 Elementen bestehen. In der for-Schleife haben wir jedoch die Iterationsbedingung auf i gesetzt<=subjects.length. Thus for the last iteration, the value of i is 5 which exceeds the array size. Hence, when printing array elements, the iteration i=5, results in ArrayIndexOutOfBoundsException being thrown.
beste Software zum Wiederherstellen gelöschter Dateien
Im Folgenden finden Sie ein weiteres Beispiel für den Zugriff auf den negativen Index.
class Main { public static void main(String() args) { //array of integers Integer() intArray = {10,20,30,40,50}; //index = 0; accessing element is successful System.out.println('First element: ' + intArray(0)); //index = -4; accessing fails. Exception thrown System.out.println('Last element: ' + intArray(-4)); }
Ausgabe:
Im obigen Programm deklarieren wir ein Array vom Typ Integer und greifen dann über einzelne Indizes auf die Elemente zu. Der erste Ausdruck ist gültig, aber im zweiten Ausdruck haben wir versucht, auf das Element bei index = -4 zuzugreifen. Daher löst der zweite Ausdruck eine ArrayIndexOutOfBoundsException aus, wie in der Ausgabe gezeigt.
Vermeiden von ArrayIndexOutOfBoundsException
Die häufigste Ursache für das Auftreten von ArrayIndexOutOfBoundsException ist, dass der Programmierer einen Fehler bei der Verwendung der Array-Indizes macht.
Somit kann der Programmierer die folgenden Techniken befolgen, um das Auftreten von ArrayIndexOutOfBoundsException zu vermeiden.
Verwenden Sie die richtigen Start- und Endindizes
Arrays beginnen immer mit dem Index 0 und nicht mit 1. Ebenso kann auf das letzte Element im Array über den Index 'Arraylength-1' und nicht über 'Arraylength' zugegriffen werden. Programmierer sollten bei der Verwendung der Array-Grenzwerte vorsichtig sein und daher ArrayIndexOutOfBoundsException vermeiden.
Verwenden von Enhanced For Loop
Eine erweiterte for-Schleife oder for-each-Schleife iteriert über zusammenhängende Speicherorte wie Arrays und greift nur auf die zulässigen Indizes zu. Wenn also eine erweiterte for-Schleife verwendet wird, müssen wir uns keine Sorgen machen, dass auf falsche oder illegale Indizes zugegriffen wird.
Beispiel für die Iteration über ein Array mit Enhanced for Loop.
class Main { public static void main(String() args) { //array of subjects. There are 5 elements. String() subjects = {'Maths','Science','French','Sanskrit', 'English'}; System.out.println('') //define enhanced for loop to iterate over array for(String strval:subjects) { //iterates only through valid indices System.out.print(strval + ' '); } } }
Ausgabe:
Wir haben im obigen Programm eine erweiterte for-Schleife verwendet, um das Array von Themen zu durchlaufen. Beachten Sie, dass wir für diese Schleife den Index nicht explizit angeben müssen. Daher iteriert die Schleife über das Array, bis das Ende des Arrays erreicht ist.
Daher ist es einfach, die ArrayOutOfBoundsException zu korrigieren, indem geeignete Indizes verwendet werden und bei der Angabe der Array-Grenzwerte vorsichtig vorgegangen wird. Wir können auch eine erweiterte for-Schleife verwenden, um über die Arrays zu iterieren.
Lassen Sie uns einige häufig gestellte Fragen zu Ausnahmen in Arrays beantworten.
Häufig gestellte Fragen
F # 1) Warum tritt ArrayIndexOutOfBoundsException auf?
Antworten: ArrayIndexOutOfBoundsException tritt auf, wenn Sie versuchen, auf einen Array-Index zuzugreifen, der nicht vorhanden ist. Der Index ist entweder negativ oder außerhalb der Grenzen des Arrays.
F # 2) Was ist NegativeArraySizeException?
Antworten: NegativeArraySizeException ist eine Laufzeitausnahme, die ausgelöst wird, wenn ein Array mit einer negativen Größe definiert wird.
Zufallszahlengenerator zwischen 0 und 1
F # 3) Was ist ein Array außerhalb der gebundenen Ausnahme?
Antworten: Eine Ausnahme außerhalb des gebundenen Arrays tritt auf, wenn ein Programm versucht, auf ein Array-Element zuzugreifen, indem es einen negativen Index oder einen Index angibt, der nicht im Bereich des angegebenen Arrays liegt.
F # 4) Können wir NullPointerException in Java auslösen?
Antworten: Ja, Sie können NullPointerException in Java auslösen, oder die JVM erledigt dies für Sie.
F # 5) Ist die NullPointerException aktiviert oder deaktiviert?
Antworten: NullPointerException ist deaktiviert und erweitert RuntimeException. Es zwingt den Programmierer nicht, den catch-Block zu verwenden, um damit umzugehen.
Fazit
In diesem Tutorial haben wir die Details der ArrayIndexOutOfBoundsException in Java erläutert. Diese Ausnahme wird normalerweise ausgelöst, wenn wir in einem Programm versuchen, über den negativen Index oder den Index außerhalb der Grenzen auf die Array-Elemente zuzugreifen, indem wir einen Index angeben, der größer als die angegebene Array-Länge ist.
Diese Ausnahme kann vermieden werden, indem beim Zugriff auf die Arrays auf Indizes geachtet wird oder eine erweiterte for-Schleife verwendet wird, die standardmäßig nur auf legale Indizes zugreift.
Wir werden in unseren nachfolgenden Tutorials zu anderen Array-Themen übergehen.
=> Entdecken Sie hier den KOSTENLOSEN Java-Kurs.
Literatur-Empfehlungen
- Java Reflection Tutorial mit Beispielen
- Java Array Length Tutorial mit Codebeispielen
- Java-Ausnahmen und Ausnahmebehandlung mit Beispielen
- JAVA-Tutorial für Anfänger: Über 100 praktische Java-Video-Tutorials
- Zugriffsmodifikatoren in Java - Tutorial mit Beispielen
- Java Array - Wie drucke ich Elemente eines Arrays in Java?
- Einführung in die Java-Programmiersprache - Video-Tutorial
- Java SWING Tutorial: Container-, Komponenten- und Ereignisbehandlung