Μήνυμα λάθους: java.lang.NullPointerException - τι να κάνετε;
Ο μεταγλωττιστής ελέγχει το γραπτό πρόγραμμα για όλα εκτός από μία: εξαιρέσεις χρόνου εκτέλεσης. Μια τέτοια εξαίρεση είναι, για παράδειγμα, η NullPointerException, η οποία ανήκει στο βασικό πακέτο java.lang στη γλώσσα προγραμματισμού Java.
Πότε ο μεταγλωττιστής ρίχνει το java.lang.NullPointerException;
Εξαιρέσεις συμβαίνουν συχνά κατά τη διάρκεια της δοκιμαστικής φάσης. Αυτό ισχύει ιδιαίτερα για το NullPointerException, το οποίο συνήθως συναντάται ως αρχάριος όταν πρόκειται για προγραμματισμό. Πιο συγκεκριμένα, είναι μια μεταβλητή που δείχνει ένα κενό αντικείμενο. Για παράδειγμα, το σφάλμα παρουσιάζεται στις ακόλουθες περιπτώσεις:
- Όταν το στοιχείο μιας συστοιχίας είναι προσπελάσιμο και το στοιχείο δεν έχει αξία.
- Όταν ερωτάται το μήκος ενός πίνακα του οποίου η τιμή είναι μηδέν.
- Αν δημιουργήθηκε ένα αντικείμενο χωρίς τον νέο χειριστή και επιχειρείται η εκτέλεση εργασιών με τη μεταβλητή αναφοράς.
- Στο παράδειγμα μας, το τηλεχειριστήριο είναι στην πράξη η μεταβλητή αναφοράς (δείκτης) που δείχνει το πραγματικό αντικείμενο του εκτυπωτή. Αυτή η μεταβλητή χρησιμοποιείται για την εκτέλεση εργασιών όπως η εξαγωγή μηνυμάτων σφάλματος στον εκτυπωτή, ο υπολογισμός των επιπέδων μελανιού κ.λπ. Εάν το τηλεχειριστήριο δείχνει σε κενό αντικείμενο ή σε κανένα αντικείμενο, η μεταβλητή αναφοράς έχει μηδενική τιμή.
Πώς να διορθώσετε το μήνυμα σφάλματος
Εξαιρέσεις μπορούν να ληφθούν υπό Java με μια δοκιμή {...} catch {(Exception e)} "μπλοκ. Ωστόσο, αυτή η μέθοδος δεν είναι πάντοτε απαραίτητη και δημιουργεί επίσης γενικά έξοδα. Είναι καλύτερα να έχετε υπόψη σας τις παρακάτω συμβουλές:
- Ελέγξτε αν έχει δημιουργηθεί το αντικείμενο σας. Αν αυτό δεν συμβαίνει, δημιουργήστε το χρησιμοποιώντας τη σύνταξη εντολών " sample object name = new object object (variables) ".
- Με τη λειτουργία εντοπισμού σφαλμάτων, μπορείτε να ελέγξετε τη γραμμή κώδικα κατά γραμμή και να δείτε τα ενδιάμεσα αποτελέσματα. Βεβαιωθείτε ότι δεν αντικαταστήσατε το αντικείμενο που δημιουργήσατε ή το αποθηκεύσατε με τιμή NULL. Αυτό σημαίνει ότι το αντικείμενο δεν είναι πλέον διαθέσιμο και επιπλέον εντολές αντικειμένου προκαλούν το σφάλμα.
- Συμβουλή: Εάν αλλάζετε συχνά το αντικείμενο, συνηθίζετε να ελέγχετε το αντικείμενο πριν και μετά τις θεμελιώδεις αλλαγές χρησιμοποιώντας ένα ερώτημα if (" if (example object ! = NULL) {...} ").
Στην επόμενη πρακτική συμβουλή θα εξηγήσουμε πώς μπορείτε να χρησιμοποιήσετε τις εκφράσεις Lambda στην Java.