English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في 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
تأكد من أن جميع الأجسام قد تم تفعيلها قبل استخدامها.
تأكد من أن كل متغير مرجع (مثل الأجسام، الأنواع، إلخ) ليس له قيمة null قبل الوصول إلى الحقول أو الطرق (إذا كانت موجودة).
نعم، يمكنك معالجة 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، يُنصحك بتصحيح أو تجنب هذا الخطأ بدلاً من محاولة التقاط الاستثناء.