Περισσότερα
Τι προκαλεί την εξαίρεση java.lang.ArrayIndexOutOfBoundsException και πώς μπορώ να την αποτρέψω;
Τι σημαίνει ArrayIndexOutOfBoundsException
και πώς μπορώ να το ξεφορτωθώ;
Ακολουθεί ένα δείγμα κώδικα που προκαλεί την εξαίρεση:
String[] name = { "tom", "dick", "harry" };
for (int i = 0; i <= name.length; i++) {
System.out.println(name[i]);
}
273
3
Η πρώτη σας επαφή θα πρέπει να είναι η [τεκμηρίωση][1] που εξηγεί με αρκετή σαφήνεια:
Έτσι, για παράδειγμα:
Όσο για το πώς να το αποφύγετε... μην το κάνετε αυτό. Να είστε προσεκτικοί με τους δείκτες του πίνακα σας.
Ένα πρόβλημα που αντιμετωπίζουν μερικές φορές οι άνθρωποι είναι να νομίζουν ότι οι πίνακες είναι 1-δείκτες, π.χ.
See also:
Ενημέρωση: σύμφωνα με το απόσπασμα κώδικα σας,
Αυτό σημαίνει ότι προσπαθείτε να προσπελάσετε έναν δείκτη ενός πίνακα που δεν είναι έγκυρος, καθώς δεν βρίσκεται μεταξύ των ορίων.
Για παράδειγμα, αυτό θα αρχικοποιούσε έναν πρωτόγονο ακέραιο πίνακα με το άνω όριο 4.
Οι προγραμματιστές μετρούν από το μηδέν. Έτσι αυτό για παράδειγμα θα έφερνε μια
ArrayIndexOutOfBoundsException
καθώς το άνω όριο είναι 4 και όχι 5.