استثناء المؤشر الفارغ في Java: التنفيذ والأمثلة



ستزودك هذه المقالة بمعرفة مفصلة وشاملة عن كيفية عمل Null Pointer Exception في Java مع الكثير من الأمثلة.

هناك حاجة إلى استثناءات للتشغيل السلس للكود وإعلام المبرمجين بالخطأ الذي يجب حله. في هذه المقالة ، سنركز على Null Pointer Exception في Java بالترتيب التالي:

ما هو Null Pointer Exception في Java؟





استثناء المؤشر الفارغ في Java هو استثناء لوقت التشغيل. في عالم Java ، يتم تعيين قيمة فارغة خاصة لمرجع كائن. يتم تقديم استثناء المؤشر الفارغ عندما يحاول برنامج استخدام مرجع كائن ، والذي له قيمة فارغة. التي يمكن أن تكون:

نوع بيانات التاريخ SQL
  • لاستدعاء طريقة معينة من كائن فارغ.
  • للوصول إلى حقل كائن فارغ أو تعديله.
  • من خلال النظر في طول فارغة ، كما لو كانت مصفوفة.
  • أثناء الوصول إلى أو تعديل فتحات كائن فارغ.
  • رمي لا شيء مثل القيمة القابلة للرمي.
  • تحاول المزامنة عبر كائن فارغ.

لماذا نحتاج القيمة الفارغة؟



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

أفضل وأبسط طريقة لإنشاء مثيل واحد على الأقل للفئة هي إعلان جميع المنشئات على أنها خاصة. ثم يقومون بإنشاء طريقة عامة تُرجع المثيل الفريد للفئة.

// لاستخدام وظيفة randomUUID. import java.util.UUID import java.io. * class Singleton {// هنا نقوم بتهيئة قيم single و ID إلى null. مفرد ثابت خاص مفرد = معرّف سلسلة خاص فارغ = فارغ خاص Singleton () {/ * اجعله خاصًا ، لمنع إنشاء مثيلات جديدة لفئة Singleton. * / // إنشاء معرّف عشوائي = UUID.randomUUID (). toString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // فئة عامة كود برنامج التشغيل TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

انتاج:



null-pointer

المثال أعلاه هو مثيل ثابت للفئة المفردة. تتم تهيئة المثيل مرة واحدة على الأكثر داخل طريقة Singleton get Instance.

الدمية مقابل الشيف مقابل عامل ميناء

كيف تتجنب استثناء Null Pointer في Java؟

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

// برنامج لشرح استدعاء طريقة // على الأسباب الخالية NullPointerException استيراد java.io. * class GFG {public static void main (String [] args) {// تهيئة متغير String بقيمة خالية String ptr = null // التحقق مما إذا كان ptr. يساوي null أو يعمل بشكل جيد. جرب {// هذا السطر من التعليمات البرمجية يطرح NullPointerException // لأن ptr فارغ إذا (ptr.equals ('gfg')) System.out.print ('Same') else System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

انتاج:

حفظ التحقق من حجج الطريقة

تذكر دائمًا أنه قبل تنفيذ جسم طريقة جديدة ، يجب أن نتأكد من وسيطاتها الخاصة بالقيم الخالية ومتابعة تنفيذ الطريقة. إذا وفقط عندما يتم التحقق من الحجج بشكل صحيح. وإلا ، فسيتم طرح 'IllegalArgumentException' واستدعاء طريقة الاستدعاء أن هناك خطأ ما في الوسائط التي تم تمريرها.

// برنامج للتحقق مما إذا كانت المعلمات فارغة أم لا قبل // استخدامها. import java.io. * class GFG {public static void main (String [] args) {// String s تعيين سلسلة فارغة واستدعاء getLength () String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException caught')} // String s مضبوطة على قيمة واستدعاء getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException caught')} // الإعدادات فارغة واستدعاء getLength () s = null try {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException caught')}} // وظيفة لإرجاع طول السلسلة s. يلقي // IllegalArgumentException إذا كانت s خالية. public static int getLength (String s) {if (s == null) طرح IllegalArgumentException الجديدة ('لا يمكن أن تكون الوسيطة فارغة') وإرجاع s.length ()}}

انتاج:

استخدام عامل التشغيل الثلاثي

يتم استخدام عامل التشغيل الثلاثي لتجنب NullPointerException. يتم التحقق من التعبير المنطقي وإذا كان التعبير صحيحًا ، يتم إرجاع القيمة 1 ، وإلا يتم إرجاع القيمة 2. يمكن استخدام عامل التشغيل الثلاثي لمعالجة المؤشرات الفارغة: الصورة الصحيحة هي الإخراج المقابل.

// برنامج Java لإثبات أنه يمكننا استخدام // عامل التشغيل الثلاثي لتجنب NullPointerException. import java.io. * class GFG {public static void main (String [] args) {// تهيئة متغير String بقيمة فارغة String str = null String message = (str == null)؟ '': str.substring (0،5) System.out.println (رسالة) str = 'Edureka_Java_Blog' message = (str == null)؟ '': str.substring (0،5) System.out.println (رسالة)}}

انتاج:

إدوريك

بهذا ، وصلنا إلى نهاية Null Pointer Exception في Java. آمل أن تكون قد حصلت على فكرة عن استثناء Null Pointer Exception.

Talend Open studio لتكامل البيانات

تفحص ال من Edureka ، شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250.000 متعلم راضٍ منتشرين في جميع أنحاء العالم تم تصميم دورة تدريب وشهادة Java J2EE و SOA من Edureka للطلاب والمهنيين الذين يرغبون في أن يصبحوا مطوري Java. تم تصميم الدورة التدريبية لمنحك السبق في برمجة Java وتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في مدونة 'Null Pointer Exception in Java' وسنقوم بالرد عليك في أقرب وقت ممكن.