English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

ماذا يحدث إذا لم يتم معالجة NullPointerException في الطريقة الرئيسية في لغة الجافا؟

في Java، لكل نوع هناك قيمة افتراضية، عندما لا تقوم بتوليد مثيل للفئة فإن ملاحظة Java ستستخدم هذه القيم لتحديد القيم الافتراضية لها. Null هو القيمة الافتراضية للنوع الجسم، يمكنك أيضًا تخصيص null لتوليد جسم في الطريقة.

Object obj = null;

لكن لا يمكنك استخدام جسم يحتوي على قيمة null أو (إذا استخدمت قيمة null بدلاً من الجسم) فإنه سيؤدي إلىNullPointerException.

هذه بعض الحالات التي يمكن أن يحدث فيها NullPointerException.

  • استخدام جسم فارغ لندعوة الطريقة a (المثال).

public class Demo
   public void demoMethod() {
      System.out.println("Hello how are you");
   }
   public static void main(String args[])
      Demo obj = null;
      obj.demoMethod();
   }
}

استثناء في الوقت الفعلي

استثناء في النواة "الرئيسية" java.lang.NullPointerException
at july_set3.Demo.main(Demo.java:11)
  • الوصول، التغيير، الطبع في القيمة الفارغة (الجسم).

public class Demo
   String name = "Krishna";
   int age = 25;
   public static void main(String args[])
      Demo obj = null;
      System.out.println(obj.age);
      System.out.println(obj.name);
   }
}

استثناء في الوقت الفعلي

استثناء في النواة "الرئيسية" java.lang.NullPointerException
at july_set3.Demo.main(Demo.java:11)
  • التحاول الوصول إلى طول القيمة الفارغة (الطبع/في الجملة).

public class Demo
   String name = null;
   public static void main(String args[])
      Demo obj = new Demo();
      System.out.println(obj.name.length());
   }
}

استثناء في الوقت الفعلي

استثناء في النواة "الرئيسية" java.lang.NullPointerException
at july_set3.Demo.main(Demo.java:7)
  • تم إلقاء استثناء فارغ.

public class Demo
   public static void main(String args[])
      throw null;
   }
}

استثناء في الوقت الفعلي

استثناء في النواة "الرئيسية" java.lang.NullPointerException
at july_set3.Demo.main(Demo.java:5)
  • الوصول أو التغيير في العنصر أو الفتحة الذي يحتوي على قيمة فارغة.

public class Demo
   public static void main(String args[])
      int myArray[] = null;
      System.out.println(myArray[5]);
   }
}

استثناء في الوقت الفعلي

استثناء في النواة "الرئيسية" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:6)

تجنب NullPointerException

تجنب NullPointerException

  • تأكد من أن جميع الأجسام قد تم تفعيلها قبل استخدامها.

  • تأكد من أن كل متغير مرجع (مثل الأجسام، الأنواع، إلخ) ليس له قيمة null قبل الوصول إلى الحقول أو الطرق (إذا كانت موجودة).

معالجة NullPointerException

نعم، يمكنك معالجة NullPointerException في دالة main وعرض رسالتك الخاصة. وإذا لم يتم معالجته، فإن البرنامج سيتم إيقافه بشكل استثنائي عند التنفيذ.

مثال

public class Demo
   public static void main(String args[])
      int myArray[] = null;
      try
         System.out.println(myArray[5]);
      }
         System.out.println("NPE occurred");
      }
   }
}

نتائج الإخراج

NPE حدث

لكن، نظرًا لأن NullPointerException هو استثناء في الوقت التنفيذ غير المدقق، لا داعي للتعامل معه في الوقت التنفيذ.

بالإضافة إلى ذلك، إذا كان هناك أخطاء يجب تصحيحها في البرنامج، ستحدث NPE، يُنصحك بتصحيح أو تجنب هذا الخطأ بدلاً من محاولة التقاط الاستثناء.

سيحبك هذا