يعد خطأ وقت التشغيل" مرجع الكائن لا يشير إلى مثيل كائن " أحد الأخطاء الأكثر شيوعا التي يواجهها مطورو البرامج. يحدث هذا الخطأ عندما يحاول البرنامج الوصول إلى كائن ، ولكن الإشارة إلى هذا الكائن لا يشير إلى مثيل موجود. يمكن أن يحدث هذا عندما تمت تهيئة مرجع الكائن بشكل غير صحيح أو تم حذف الكائن من الذاكرة.
قد يتطلب تصحيح خطأ وقت التشغيل" مرجع الكائن لا يشير إلى مثيل كائن " عدة خطوات. أولا ، تحتاج إلى التحقق مما إذا كان مرجع الكائن قد تمت تهيئته بشكل صحيح. إذا تم إنشاء كائن ، ولكن تمت إعادة تعيين المرجع إليه أو تعيينه بشكل غير صحيح لكائن آخر ، فأنت بحاجة إلى استعادة المرجع إلى الكائن الأصلي.
إذا تم حذف كائن من الذاكرة ، فأنت بحاجة إلى التحقق من أنه تم حذفه بشكل صحيح وأن جميع الإشارات إلى هذا الكائن قد تمت إعادة تعيينها أيضا. من الممكن أن يكون الكائن قد تم حذفه في وقت أبكر مما هو متوقع ، أو تم تنفيذ العمليات التي يجب تنفيذها فقط بعد حذف الكائن. في هذه الحالة ، تحتاج إلى التحقق من الرمز الذي يحذف الكائن والتأكد من حذف الكائن فقط بعد عدم الحاجة إليه.
يوصى أيضا باستخدام آليات التحكم في الذاكرة وإدارتها التي توفرها لغة البرمجة الخاصة بك. توفر بعض لغات البرمجة ، مثل سي Java أو جافا ، إدارة تلقائية للذاكرة ، والتي يمكن أن تساعد في منع خطأ وقت التشغيل "لا يشير مرجع الكائن إلى مثيل كائن". لكن يجب ألا تعتمد فقط على الإدارة التلقائية للذاكرة — يجب عليك دائما مراقبة استخدام الكائنات والمراجع إليها بعناية.
- التحقق من مثيل كائن
- تحديث مرجع الكائن
- عمل جامع القمامة
التحقق من مثيل كائن
يحدث خطأ وقت التشغيل" مرجع الكائن لا يشير إلى مثيل كائن " عندما يحاول برنامج الوصول إلى طرق أو خصائص كائن لم يتم استدعاء المنشئ عليه أو تم حذف مثيل الكائن.
لمنع حدوث هذا الخطأ ، من الضروري التحقق من وجود مثيل للكائن قبل الوصول إليه. للقيام بذلك ، يمكنك استخدام الإنشاءات الشرطية أو مشغلي التحقق من المساواة.
مثال على التحقق من مثيل كائن:
. خلاف ذلك ، يتم عرض رسالة تفيد بأن الكائن غير موجود.
للتعامل مع استثناء يحدث عند الوصول إلى كائن غير موجود:
وسيتم عرض رسالة تفيد بأن الكائن غير موجود.
يعد التحقق من مثيل كائن جزءا مهما من معالجة الأخطاء ويتجنب خطأ وقت التشغيل"مرجع الكائن لا يشير إلى مثيل كائن". يجب عليك دائما التحقق من وجود كائن قبل الوصول إلى أساليبه وخصائصه للتأكد من وجود الكائن.
تحديث مرجع الكائن
يحدث خطأ وقت التشغيل" مرجع الكائن لا يشير إلى مثيل كائن " عند إجراء محاولة للوصول إلى كائن مثيل غير موجود أو غير مهيأ لفئة.
لإصلاح هذا الخطأ ، تحتاج إلى تحديث مرجع الكائن بحيث يشير إلى المثيل التهيئة الصحيح للفئة. فيما يلي بعض الطرق لتحديث مرجع كائن:
- تحقق من تهيئة الكائن: تأكد من إنشاء الكائن وتهيئته بشكل صحيح. إذا لم يتم إنشاء الكائن أو لم تتم تهيئته بشكل صحيح ، فقم بتحديث المرجع إلى الكائن الصحيح.
- تحقق من النطاق: تحقق من أن الإشارة إلى الكائن في النطاق المطلوب. إذا كان مرجع الكائن خارج النطاق ، فقم بتحديث مرجع الكائن بحيث يكون متاحا في الجزء المناسب من الكود.
- تحقق من شروط التنفيذ: تحقق من أن شرط التنفيذ الذي يتم بموجبه إنشاء الكائن يتم تنفيذه بشكل صحيح. في حالة عدم تطابق شرط التنفيذ ، قم بتحديث الشرط أو إنشاء كائن في مكان آخر في التعليمات البرمجية.
- استخدم طرق التحقق: استخدم طرق التحقق التي تسمح لك بتحديد ما إذا كان مرجع كائن يشير إلى مثيل صالح. سيؤدي هذا إلى تجنب خطأ وقت التشغيل.
- التعامل مع الاستثناء: إذا تعذر تحديث مرجع كائن أو التحقق من صحته بسبب ظروف معينة ، فيمكنك التعامل مع استثناء لتجنب خطأ وقت التشغيل.
يعد تحديث مرجع كائن خطوة مهمة في تصحيح خطأ وقت التشغيل"لا يشير مرجع كائن إلى مثيل كائن". يتيح لك تحديث الرابط بشكل صحيح الوصول إلى الكائن وإجراء العمليات اللازمة دون أخطاء.
عمل جامع القمامة
جامع القمامة هو آلية مدمجة في لغات البرمجة مثل جافا وج # التي تحرر تلقائيا الذاكرة التي تشغلها الكائنات التي لم تعد مستخدمة في البرنامج. يراقب جامع القمامة الكائنات ، ويحدد متى لم تعد هناك حاجة إليها ، ويحذفها لتحرير الذاكرة وتجنب تسرب الذاكرة.
المبادئ الأساسية لهواة جمع القمامة:
- تعريف الأشياء "الميتة" : يقوم جامع البيانات المهملة بتتبع جميع الإشارات إلى الكائنات في البرنامج ويحدد الكائنات التي لم يعد من الممكن الوصول إليها من مراجع الجذر. إذا كان الكائن غير قابل للوصول ، فإنه يعتبر "ميتا" ويمكن حذفه بواسطة جامع القمامة.
- وضع العلامات والتنظيف: يمر جامع القمامة عبر جميع الكائنات الموجودة في الكومة ويضع علامات على جميع الكائنات التي يمكن الوصول إليها. ثم يحرر الذاكرة التي تشغلها كائنات لا يمكن الوصول إليها.
- إلغاء التجزئة: بعد حذف الكائنات غير المستخدمة ، يحدث تجزئة الذاكرة. يمكن لمجمع البيانات المهملة إلغاء التجزئة عن طريق ضغط الكائنات المتبقية وتحرير المزيد من الذاكرة.
الأنواع الرئيسية لهواة جمع القمامة
- هي علامة واكتساح: أبسط خوارزمية جمع القمامة التي تحدد جميع الكائنات التي يمكن الوصول إليها ثم تحذف جميع الكائنات التي لم يتم وضع علامة عليها. ومع ذلك ، يمكن أن تؤدي هذه الخوارزمية إلى تجزئة الكومة ، مما قد يؤدي إلى إبطاء البرنامج.
- عد المراجع: يتم تعيين عدد مرجعي لكل كائن ، والذي يزداد عند إنشاء روابط جديدة وينخفض عند حذف الروابط إلى الكائن. عندما يصل عدد المراجع إلى الصفر ، يعتبر الكائن غير مستخدم ويمكن حذفه. ومع ذلك ، لا يمكن لهذه الخوارزمية اكتشاف المراجع الدورية ، مما قد يؤدي إلى تسرب الذاكرة.
- جمع القمامة الأجيال: تقسم هذه الخوارزمية الكائنات إلى عدة أجيال ، على سبيل المثال ، جيل الشباب والجيل الأكبر سنا. تصبح معظم الكائنات غير مستخدمة بسرعة ، لذلك يركز جمع القمامة بشكل أساسي على جيل الشباب. تضمن هذه الخوارزمية تشغيلا أكثر كفاءة لمجمع القمامة.
جامع القمامة هو تلقائي ويوفر الراحة للمطورين ، وتحريرهم من الحاجة إلى إدارة الذاكرة يدويا. ومع ذلك ، يمكن أن يؤدي الاستخدام غير السليم للذاكرة أو وجود تسرب للذاكرة إلى التشغيل غير الفعال لمجمع البيانات المهملة وأخطاء وقت التشغيل.