Το java.lang.nullpointerexception είναι ένα σφάλμα Java που συμβαίνει όταν μια εφαρμογή Java προσπαθεί να χρησιμοποιήσει ένα null αντί για ένα αντικείμενο.
Το RuntimeException επεκτείνεται από το NullPointerException, το οποίο είναι μια δημόσια κλάση.
Το NullPointerException δημιουργείται σε διάφορες καταστάσεις, όπως όταν καλείτε τη μέθοδο παρουσίας ενός μηδενικού αντικειμένου. Αυτό το σφάλμα θα προκύψει επίσης εάν ένα αντικείμενο είναι μηδενικό και προσπαθήσετε να αποκτήσετε πρόσβαση ή να επεξεργαστείτε ένα πεδίο αυτού του μηδενικού αντικειμένου.
Εάν προσπαθήσετε να πάρετε το μήκος ενός μηδενικού πίνακα, θα δημιουργηθεί επίσης μια εξαίρεση.
Σε αυτό το άρθρο, θα εξετάσουμε πώς να χειριστείτε μια εξαίρεση μηδενικού δείκτη στην Java.
Πότε συμβαίνει το java.lang.nullpointerexception;
Όταν γίνεται πρόσβαση σε μια μεταβλητή java που δεν οδηγεί σε κανένα αντικείμενο για οποιαδήποτε ενέργεια, προκύπτει η εξαίρεση java.lang.nullpointer.
Εξαίρεση χρόνου εκτέλεσης java.lang.nullpointerexception Μια εξαίρεση στον χρόνο εκτέλεσης είναι το java.lang.nullpointerexception. Όταν ορίζετε μια μεταβλητή αλλά δεν την εκχωρείτε σε ένα αντικείμενο μέχρι να προσπαθήσετε να τη χρησιμοποιήσετε, θα λάβετε μια java nullpointerexception.
Αναφέρεσαι σε ανύπαρκτη οντότητα. Στην Java, το null υποδηλώνει μια συγκεκριμένη τιμή. Συνήθως χρησιμοποιείται για να υποδείξει ότι σε μια μεταβλητή αναφοράς δεν έχει εκχωρηθεί μια τιμή ή δεν της έχει εκχωρηθεί καμία τιμή.
Για να αποφύγετε ένα NullPointerException, βεβαιωθείτε ότι όλα τα αντικείμενα έχουν προετοιμαστεί σωστά πριν χρησιμοποιήσετε τη μεταβλητή.
Τα παρακάτω είναι μερικά από τα πιο συχνά σενάρια NullPointerException:
- Απόκτηση των ιδιοτήτων ενός μηδενικού αντικειμένου
- Χρήση μηδενικού αντικειμένου για την κλήση μεθόδων
- Σε μηδενικό αντικείμενο, χρησιμοποιώντας συγχρονισμένο
- Μηδενισμός από μια μέθοδο εξαίρεσης
- Τα μηδενικά ορίσματα μεταβιβάζονται σε μια μέθοδο.
- Πρόσβαση στο στοιχείο ευρετηρίου ενός μηδενικού αντικειμένου (όπως σε έναν πίνακα)
- Για πλαίσια ένεσης εξάρτησης όπως το Spring, αυτή η ρύθμιση είναι εσφαλμένη.
Παράδειγμα java.lang.nullpointerexception
Το NullPointerException θα πεταχτεί εάν δημιουργηθεί μια μεταβλητή Java που δεν αναφέρεται σε ένα αντικείμενο και χρησιμοποιείται για την εκτέλεση κάποιας δραστηριότητας.
Το παρακάτω παράδειγμα επιχειρεί να προσδιορίσει το μήκος της συμβολοσειράς που έχει οριστεί σε null.
Διόρθωση του java.lang.nullpointerexception
Fix 1
Βρείτε τη μεταβλητή java που δημιουργεί την εξαίρεση java.lang. Εάν το λογισμικό εμφανίσει ένα NullPointerException, ελέγξτε ξανά ότι η μεταβλητή έχει εκχωρηθεί σε μια τιμή ή αντικείμενο.
Το java.lang.nullpointerexception θα απορριφθεί εάν εκχωρηθεί μια τιμή στη μεταβλητή java.
Fix 2
Χρησιμοποιήστε τον τριαδικό τελεστή για να καθορίσετε την προεπιλεγμένη τιμή πριν χρησιμοποιήσετε τη μεταβλητή java για να εκτελέσετε την ενέργεια εάν ένα java.lang.nullpointereΤο xception ρίχνεται στη μεταβλητή.
Η τιμή της μεταβλητής θα χρησιμοποιηθεί εάν έχει μία. Διαφορετικά, για να αποφευχθεί μια java.lang.nullpointerexception, θα χρησιμοποιηθεί η προεπιλεγμένη τιμή.
Fix 3
Εάν δεν είστε βέβαιοι ποια μεταβλητή προκαλεί το java.lang.nullpointerexception ή εάν υπάρχει πιθανότητα να ρίξετε το java.lang.nullpointerexception ή εάν υπάρχει κίνδυνος να ρίξετε το java.lang.nullpointerexception σε πολλά σημεία. Είναι χρονοβόρο να προσθέσετε μια μηδενική επιταγή στον κώδικα.
Για να χειριστείτε το πρόβλημα, προσθέστε ένα μπλοκ catch σε αυτό.
Fix 4
Εάν η μεταβλητή java στην εφαρμογή εμφανίζει ένα java.lang.nullpointerexception, κάντε έναν μηδενικό έλεγχο πριν τη χρησιμοποιήσετε.
Ακολουθήστε την εναλλακτική διαδρομή εάν η μεταβλητή είναι μηδενική. Το java.nullpointerexception θα αφαιρεθεί.
Συμπέρασμα
Σε αυτό το άρθρο, εξετάσαμε το Java NullPointerException.
Αυτή είναι μια επικίνδυνη εξαίρεση που εμφανίζεται συχνά όταν δεν το περιμένουμε. Η πιο συνηθισμένη αιτία εξαίρεσης μηδενικού δείκτη είναι ένα μηδενικό αντικείμενο ή μηδενική αναφορά.
Έχουμε ήδη δει τις πιο αποτελεσματικές λύσεις.
Αφήστε μια απάντηση