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

متى يرفع جافا استثناء NullPointerException؟

في Java، لكل نوع هناك قيمة افتراضية، عندما لا تقوم بتحديد قيمة للعناصر الافتراضية للفئة، يستخدم مشغل Java هذه القيم تلقائيًا لتحديد القيم. Null هو القيمة الافتراضية للنوع المobjet، يمكنك أيضًا تخصيص null للمobjet في الدوال.

Object obj = null;

لكن، لا يمكنك استخدام العناصر التي تحتوي على قيمة null أو (إذا استخدمت قيمة null بدلاً من العنصر) العناصر، فإن ذلك سيؤدي إلى NullPointerExcepiton.

مثال

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);
   }
}

استثناء في التشغيل

Exception in thread "main" java.lang.NullPointerException
   في july_set3.Demo.main(Demo.java:11)

على حسب وثائق Java، إذا حاولت تنفيذ NullPointerException-

  • استدعاء عملية a (مثال) باستخدام عنصر فارغ.

  • الوصول، التغيير، الطبع للعنصر الفارغ (العدد) للحقول.

  • الوصول إلى طول العنصر الفارغ (الطبع أو استخدام في جملة).

  • يتم إطلاق استثناء فارغ.

  • الوصول أو التغيير في العنصر أو الفتحاضرة التي تحتوي على قيمة فارغة.

إذا كان المصفوفة، فإنه يكون NullPointerException

في مصفوفات Java، أنواع الاستدلال تشبه الكلاسات، لذا فإن سيناريوهات NullPointerException تقريبا مشابهة. عند استخدام المصفوفات، يحدث NullPointerException-

  • إذا كان هناك محاولة لاستدعاء أي عنصر من مصفوفة لم يتم تعيينها بعد (بالنسبة للصفر).

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

استثناء في التشغيل

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:6)
  • إذا كنت تحاول الحصول على طول مصفوفة لم يتم تعيينها بعد (بالنسبة للصفر).

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

استثناء في التشغيل

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:6)
  • إذا كان هناك محاولة لاستدعاء أي طريقة على مصفوفة لم يتم تعيينها بعد (بالنسبة للصفر).

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

استثناء في التشغيل

Exception in thread "main" java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:6)
سيحبك هذا