הודעת שגיאה: java.lang.NullPointerException - מה לעשות?
המהדר בודק את התוכנית הכתובה לכל דבר פרט לאחד: חריגים בזמן ריצה. חריג כזה הוא, למשל, NullPointerException, השייך לחבילה החיונית java.lang בשפת התכנות Java.
מתי המהדר זורק את java.lang.NullPointerException?
חריגים מתרחשים לעתים קרובות בשלב הבדיקה. זה חל במיוחד על NullPointerException, שלרוב נתקל כמתחיל כשמדובר בתכנות. ליתר דיוק, מדובר במשתנה שמצביע על אובייקט ריק. לדוגמה, השגיאה מתרחשת במקרים הבאים:
- כאשר גישה אל האלמנט של מערך ולאלמנט אין ערך.
- בעת שאילתת אורך מערך שערכו הוא אפס.
- אם נוצר אובייקט ללא המפעיל החדש ונעשה ניסיון לבצע פעולות עם משתנה הייחוס.
- בדוגמה שלנו, השלט רחוק הוא למעשה משתנה ההתייחסות (מצביע) שמצביע על אובייקט המדפסת האמיתי. משתנה זה משמש לביצוע פעולות כגון יציאת הודעות שגיאה למדפסת, חישוב מפלסי דיו וכו '. אם השלט הרחוק מצביע על אובייקט ריק או על שום אובייקט, למשתנה הייחוס ערך האפס.
כיצד לתקן את הודעת השגיאה
ניתן לתפוס חריגים תחת ג'אווה באמצעות חסימת " נסה {...} לתפוס {(חריג ה)} ". עם זאת, שיטה זו אינה תמיד הכרחית ויוצרת תקורה. עדיף לזכור את הטיפים הבאים:
- בדוק אם האובייקט שלך נוצר. אם זה לא המקרה, צור אותו באמצעות תחביר הפקודה " שם אובייקט לדוגמא = אובייקט מדגם חדש (משתנים); ".
- במצב ניפוי באפשרותך לבדוק את הקוד שלך שורה אחר שורה ולהציג תוצאות ביניים. וודא שלא מחליפים את האובייקט שנוצר או שומר אותו בערך NULL. המשמעות היא שהאובייקט כבר לא זמין ופקודות אובייקט נוספות מפעילות את השגיאה.
- טיפ: אם אתה משנה את האובייקט שלך בתדירות גבוהה, התרגל לבדוק את האובייקט לפני ואחרי שינויים מהותיים באמצעות שאילתת if (" if (example object ! = NULL) {...} ").
בטיפ המעשי הבא נסביר כיצד ניתן להשתמש בביטויי למבה בג'אווה.