how handle arrayindexoutofboundsexception java
Deze zelfstudie biedt een gedetailleerde uitleg over een belangrijke uitzondering die wordt veroorzaakt door Java-arrays, d.w.z. ArrayIndexOutOfBoundsException met eenvoudige voorbeelden:
We hebben alles over arrays geleerd in onze vorige tutorials. Arrays zijn statisch van aard en de afmeting of grootte wordt bepaald op het moment van hun declaratie. We weten ook dat deze grootte of het aantal elementen dat voor de array wordt gedeclareerd, vast staat en genummerd is vanaf 0.
Soms is de programmalogica zodanig dat het programma probeert toegang te krijgen tot het element vanuit een niet-bestaande index. Bijvoorbeeld, vanwege storingen in een programma kan een programma proberen toegang te krijgen tot de 11thelement in de reeks van 10 elementen. Dit resulteert in een abnormale toestand.
Bekijk de complete Java-training voor beginners
input output bestanden c ++
Java biedt een uitzondering in het ‘java.lang’ -pakket dat wordt gegenereerd wanneer een niet-bestaande array-index wordt benaderd. Dit staat bekend als de 'ArrayIndexOutOfBoundsException'.
Wat je leert:
ArrayIndexOutOfBoundsException
Zoals eerder vermeld, gooit de compiler de ‘ArrayIndexOutOfBoundsException’ wanneer u probeert toegang te krijgen tot array-elementen buiten een opgegeven lengte of een negatieve index.
ArrayIndexOutOfBoundsException implementeert een ‘serialiseerbare’ interface en is afgeleid van de ‘indexOutOfBoundsException’ die op zijn beurt is afgeleid van de klasse RuntimeException, een subklasse van de klasse ‘exception’. Al deze klassen behoren tot het ‘java.lang’ -pakket.
ArrayIndexOutOfBoundsException is een runtime, ongecontroleerde uitzondering en hoeft dus niet expliciet te worden aangeroepen vanuit een methode. Hieronder volgt het klassendiagram van ArrayIndexOutOfBoundsException dat de overervingshiërarchie en de constructors voor deze uitzondering toont.
Klassendiagram van ArrayIndexOutOfBoundsException
Zoals eerder uitgelegd, heeft de klasse ArrayIndexOutOfBoundsException drie superklassen, namelijk java.lang.exception, java.lang. runtimeException en java.lang.indexOutOfBoundsException.
Vervolgens zullen we enkele voorbeelden zien van ArrayIndexOutOfBoundsException in java.
Voorbeeld van uitzondering ArrayIndexOutOfBounds
Laten we eens kijken naar het eerste voorbeeld dat laat zien dat de ArrayIndexOutOfBounds-uitzondering wordt gegenereerd.
Uitgang:
In het bovenstaande programma hebben we arrayonderwerpen bestaande uit 5 elementen. In de for-lus hebben we de iteratievoorwaarde echter ingesteld op i<=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.
Hieronder wordt nog een voorbeeld gegeven van toegang tot de negatieve index.
Uitgang:
In het bovenstaande programma declareren we een array van het type integer en benaderen we de elementen met behulp van individuele indices. De eerste uitdrukking is geldig, maar in de tweede uitdrukking hebben we geprobeerd toegang te krijgen tot het element op index = -4. Daarom gooit de tweede uitdrukking ArrayIndexOutOfBoundsException zoals weergegeven in de uitvoer.
ArrayIndexOutOfBoundsException vermijden
De meest voorkomende oorzaak van het optreden van ArrayIndexOutOfBoundsException is dat de programmeur een fout maakt bij het gebruik van de array-indices.
De programmeur kan dus de onderstaande technieken volgen om het optreden van ArrayIndexOutOfBoundsException te voorkomen.
vr die werkt met xbox one
Gebruik de juiste begin- en eindindexen
Arrays beginnen altijd met index 0 en niet 1. Evenzo kan het laatste element in de array worden benaderd met de index ‘arraylength-1’ en niet met ‘arraylength’. Programmeurs moeten voorzichtig zijn bij het gebruik van de array-limieten en daarom ArrayIndexOutOfBoundsException vermijden.
Enhanced For Loop gebruiken
Een verbeterde for-lus of for-each-lus herhaalt zich over aangrenzende geheugenlocaties zoals arrays en heeft alleen toegang tot de wettelijke indices. Wanneer Enhanced for Loop wordt gebruikt, hoeven we ons dus geen zorgen te maken dat er toegang wordt verkregen tot verkeerde of illegale indices.
Voorbeeld van iteratie over een array met Enhanced for Loop.
Uitgang:
We hebben een verbeterde for-lus gebruikt in het bovenstaande programma om de reeks onderwerpen te herhalen. Merk op dat we voor deze lus de index niet expliciet hoeven op te geven. Daarom itereert de lus over de array totdat het einde van de array is bereikt.
Het is dus gemakkelijk om de ArrayOutOfBoundsException te repareren door de juiste indices te gebruiken en voorzichtig te zijn bij het specificeren van de array-limieten. We kunnen ook gebruik maken van verbeterde for-lus om de arrays te herhalen.
Laten we verder gaan met het beantwoorden van een paar veelgestelde vragen over uitzonderingen in arrays.
Veel Gestelde Vragen
V # 1) Waarom treedt ArrayIndexOutOfBoundsException op?
Antwoord: ArrayIndexOutOfBoundsException treedt op wanneer u probeert toegang te krijgen tot een array-index die niet bestaat, dat wil zeggen. de index is negatief of valt buiten de limieten van de matrix.
Vraag 2) Wat is NegativeArraySizeException?
Antwoord: NegativeArraySizeException is een runtime-uitzondering die wordt gegenereerd als een array is gedefinieerd met een negatieve grootte.
V # 3) Wat is een array buiten de gebonden uitzondering?
Antwoord: Een uitzondering voor een array buiten het bereik treedt op wanneer een programma probeert toegang te krijgen tot een array-element door een negatieve index of een index op te geven die niet binnen het bereik van de opgegeven array valt.
V # 4) Kunnen we NullPointerException in Java gooien?
Antwoord: Ja, je kunt NullPointerException in Java gooien, anders zal de JVM het voor je doen.
V # 5) Is NullPointerException aangevinkt of niet aangevinkt?
Antwoord: NullPointerException is uitgeschakeld en breidt RuntimeException uit. Het dwingt de programmeur niet om het catch-blok te gebruiken om het af te handelen.
Gevolgtrekking
In deze tutorial bespraken we de details van ArrayIndexOutOfBoundsException in Java. Deze uitzondering wordt meestal gegenereerd wanneer we in een programma proberen toegang te krijgen tot de array-elementen met behulp van de negatieve index of de index buiten het bereik, zoals het specificeren van een index die groter is dan de opgegeven array-lengte.
Deze uitzondering kan worden vermeden door voor indices te zorgen tijdens het openen van de arrays of door een verbeterde for-lus te gebruiken die door het ontwerp alleen toegang heeft tot legale indices.
VPN voor streamen
We zullen in onze volgende tutorials verder gaan met andere arrayonderwerpen.
Ontdek hier de GRATIS Java-cursus.
Aanbevolen literatuur
- Zelfstudie over reflectie in Java met voorbeelden
- Zelfstudie over Java-array-lengte met codevoorbeelden
- Java-uitzonderingen en het afhandelen van uitzonderingen met voorbeelden
- JAVA-zelfstudie voor beginners: 100+ praktische Java-videotutorials
- Toegang tot modificatoren in Java - zelfstudie met voorbeelden
- Java Array - Hoe elementen van een array in Java af te drukken?
- Inleiding tot de programmeertaal van Java - videozelfstudie
- Java SWING-zelfstudie: afhandeling van containers, componenten en gebeurtenissen