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

لماذا يمكنني رفع null في Java، ولماذا يجب تحويله إلى NullPointerException؟

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

Object obj = null;

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

مثال

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
   at july_set3.Demo.main(Demo.java:11)

تلقائيًا NullPointerException

يمكنك أيضًا استخدام كلمة المفتاح throw لتحفيز NullPointerException في Java.

مثال

public class ExceptionExample {
   public static void main(String[] args) {
      System.out.println("Hello");
      NullPointerException nullPointer = new NullPointerException();
      throw nullPointer;
   }
}

نتيجة الطباعة

Hello
Exception in thread "main" java.lang.NullPointerException
   at MyPackage.ExceptionExample.main(ExceptionExample.java:6

رمي قيمة فارغة

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

  • استدعاء ميثود a باستخدام كائن null (مثال).

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

  • التحقق من طول قيمة فارغة (طباعة/استخدامها في جملة).

  • رمي قيمة فارغة.

  • زيارة أو تعديل عنصر/مكان فارغ.

يعني إذا تم رمي قيمة فارغة، فإن استثناء الاشارة إلى الصفر سيحدث، وليس التحويل إلى الأعلى.

مثال

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

استثناء عند التنفيذ

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