استثناءات NullPointerException المفيدة
يُخبرك JVM تلقائياً بأي متغير كانت قيمته فارغة بالضبط.
مقارنة الكود
✕ Java 8
// Old NPE message: // "NullPointerException" // at MyApp.main(MyApp.java:42) // Which variable was null?!
✓ Java 14+
// Modern NPE message: // Cannot invoke "String.length()" // because "user.address().city()" // is null // Exact variable identified!
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
المتغير المحدد
الرسالة تُسمّي المتغير الفارغ في السلسلة.
تصحيح أسرع
لا مزيد من التخمين أي من الاستدعاءات الخمسة المتسلسلة كانت فارغة.
ترقية مجانية
لا تغييرات في الكود — فقط شغّل على JDK 14+.
الأسلوب القديم
NPE مُشفَّرة
الأسلوب الحديث
NPE مفصّلة
منذ JDK
14
الصعوبة
مبتدئ
دعم JDK
استثناءات NullPointerException المفيدة
متاح
متاح على نطاق واسع منذ JDK 14 (مارس 2020)
كيف يعمل
تصف NPEs المفيدة أي تعبير كانت قيمته فارغة وأي عملية فشلت. هذا مُفعَّل بشكل افتراضي منذ Java 14 — لا تغيير في الكود مطلوب، فقط ترقية JDK.
توثيق ذو صلة