חריג מצביע אפס ב- Java: יישום ודוגמאות



מאמר זה יספק לך ידע מפורט ומקיף על האופן שבו Null Pointer Exception עובד בג'אווה עם המון דוגמאות.

יש צורך בחריגים להפעלה חלקה של קוד ולתת למתכנתים לדעת את השגיאה שיש לפתור. במאמר זה נתמקד בחריגת Null Pointer ב- Java בסדר הבא:

מהי חריגת Null Pointer ב- Java?





חריג מצביע האפס ב- Java הוא חריג בזמן ריצה. בעולם הג'אווה, ערך null מיוחד מוקצה להפניה לאובייקט. חריג המצביע Null מוצג כאשר תוכנית מנסה להשתמש בהתייחסות לאובייקט, בעלת הערך null. שיכול להיות:

  • להפעיל שיטה מסוימת מאובייקט null.
  • כדי לגשת או לשנות את השדה של אובייקט ריק.
  • על ידי בחינת אורך null, כאילו היה מערך.
  • בעת גישה או שינוי של החריצים של אובייקט null.
  • זריקת אפס כמו ערך זורק.
  • מנסה לסנכרן מעל אובייקט null.

מדוע אנו זקוקים לערך האפס?



Null הוא ערך ייחודי המשמש ב- Java. Null משמש כדי להראות שלא מוקצה ערך למשתנה ייחוס. היישום העיקרי של null טמון ביישום מבני נתונים כמו רשימות מקושרות ועצים. כמה יישומים אחרים כוללים דפוסי אובייקט null ודפוסי יחיד. דפוס סינגלטון מציין שרק מופע אחד של מחלקה ניתן ליזום ומטרתו לספק נקודת גישה גלובלית לאובייקט.

הדרך הטובה והפשוטה ליצור לפחות מופע אחד של כיתה היא להכריז על כל הבנאים כפרטיים. ואז הם יוצרים שיטה ציבורית המחזירה את המופע הייחודי של הכיתה.

מיין ספרייה c ++
// כדי להשתמש בפונקציה randomUUID. ייבא java.util.UUID ייבא java.io. * מחלקה Singleton {// כאן אנו מאותחלים את ערכי היחיד והזהה לאפס. פרטי סטטי פרטי Singleton יחיד = null פרטי מחרוזת מזהה = null פרטי Singleton () {/ * הפוך אותו לפרטי, על מנת למנוע יצירת מופעים חדשים של מחלקת Singleton. * / // צור מזהה אקראי מזהה = UUID.randomUUID (). ToString ()} ציבורי סטטי ציבורי Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // מחלקה ציבורית של קוד הנהג TestSingleton {main static public void (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

תְפוּקָה:



null-pointer

הדוגמה שלעיל היא מופע סטטי של מעמד הסינגלטון. המופע מאותחל לכל היותר פעם אחת בשיטת Singleton get Instance.

ליהוק ג'אווה כפול ל- int

כיצד להימנע מחריגה מצביעת Null ב- Java?

על מנת להימנע מחריג Null Pointer ב- Java, עלינו לוודא כי כל האובייקטים מאותחלים כראוי לפני שתשתמש בהם. כאשר מכריזים על משתנה הפניה, עלינו לוודא שאובייקט אינו ריק וגם לפני שנבקש שיטות או שדות מאובייקטים. להלן כמה בעיות בפתרונות המתאימים שלה כדי להתגבר על אותה בעיה.

// תוכנית להדגמת הפעלת שיטה // על null גורמת ל- NullPointerException לייבא java.io. * מחלקה GFG {main static public void (String [] args) {// אתחול של משתנה String עם ערך null String ptr = null // בודק אם ptr.equal null או עובד בסדר. נסה {// שורת קוד זו זורקת את NullPointerException // מכיוון ש- ptr הוא null אם (ptr.equals ('gfg')) System.out.print ('אותו') אחר System.out.print ('Not Same')} לתפוס (NullPointerException e) {System.out.print ('NullPointerException שנתפס')}}}

תְפוּקָה:

ניהול פיקוח על טיעוני השיטה

זכרו תמיד שלפני ביצוע גוף השיטה החדשה עלינו לוודא את טיעוניה לערכי null ולהמשיך בביצוע השיטה. אם ורק כאשר הוויכוחים נבדקים כראוי. אחרת, זה יזרוק 'IllegalArgumentException' ויקרא לשיטת הקריאה שמשהו לא בסדר בטיעונים שהועברו.

// תוכנית לבדיקה אם הפרמטרים הם אפסים או לא לפני // השימוש בהם. ייבא java.io. * מחלקה GFG {ציבורי ריק סטטי ראשי (String [] args) {// String s הגדר מחרוזת ריקה וקרא getLength () String s = 'נסה {System.out.println (getLength (s) )} לתפוס (IllegalArgumentException e) {System.out.println ('IllegalArgumentException שנתפס')} // מחרוזת s מוגדרת לערך וקוראת getLength () s = 'GeeksforGeeks' נסה {System.out.println (getLength (s) )} לתפוס (IllegalArgumentException ה) {System.out.println ('IllegalArgumentException נתפס')} // הגדרת s כ- null וקוראת getLength () s = null נסה {System.out.println (getLength (s))} לתפוס ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException שנתפס')}} // פונקציה להחזרת אורך המחרוזות. זה זורק // IllegalArgumentException אם s אפס. סטטי ציבורי int getLength (מחרוזות) {אם (s == null) לזרוק IllegalArgumentException חדש ('הארגומנט לא יכול להיות ריק') להחזיר s.length ()}}

תְפוּקָה:

שימוש במפעיל הרוחני

משתמשים באופרטור שלישוני כדי למנוע NullPointerException. הביטוי הבוליאני מסומן ואם הביטוי נכון אז מוחזר הערך 1, אחרת הערך 2 מוחזר. ניתן להשתמש באופרטור השלילי לטיפול במצבי אפס: התמונה הנכונה היא הפלט המתאים.

// תוכנית Java המדגימה כי אנו יכולים להשתמש במפעיל // ternary כדי למנוע NullPointerException. ייבא java.io. * מחלקה GFG {ציבורי ריק סטטי ראשי (מחרוזת [] טענות) {// אתחול משתנה מחרוזת עם ערך null מחרוזת str = null הודעת מחרוזת = (str == null)? '': str.substring (0,5) System.out.println (message) str = 'Edureka_Java_Blog' message = (str == null)? '': str.substring (0,5) System.out.println (הודעה)}}

תְפוּקָה:

אדורק

עם זה, אנו מגיעים לסוף חריגת Null Pointer ב- Java. אני מקווה שקיבלתם מושג על חריג מצביע.

בדוק את מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפרוסים ברחבי העולם. קורס ההכשרה וההסמכה של Java J2EE ו- SOA של אדוריקה מיועד לסטודנטים ואנשי מקצוע שרוצים להיות מפתח Java. הקורס נועד לתת לך יתרון לתכנות ג'אווה ולהכשיר אותך למושגי ג'אווה מרכזיים ומתקדמים יחד עם מסגרות ג'אווה שונות כמו Hibernate & Spring.

יש לך שאלה עבורנו? אנא הזכיר זאת בקטע ההערות בבלוג 'חריג מצביע Null ב- Java' ונחזור אליך בהקדם האפשרי.

קוד java להתחברות ל- mysql