جدول المحتويات:
التعريف - ماذا يعني Catch Block؟
كتلة catch ، في C # ، هي كتلة اختيارية من التعليمات البرمجية يتم تنفيذها عند رفع استثناء.
تعتبر مجموعة Catch block جزءًا محددًا من بنية المعالجة الاستثنائية ، ويتم تنفيذها باستخدام الكلمة الأساسية "catch" بالاقتران مع الكلمات الأساسية "try" و "وأخيراً" وتشكل وسائل لتنفيذ معالجة الاستثناءات المنظمة. تتضمن كتلة المحاولة الكود المحمي الذي يمكن أن يسبب الاستثناء. وهي تحتوي على عبارات تتعامل مع ظروف استثنائية وتعمل على التعافي من مثل هذه الظروف غير المتوقعة.
كتلة المصيد تشكل وسيلة للتعامل مع الاستثناءات. إذا لم تتم معالجة هذه الأمور ، فقد يؤدي ذلك إلى إنهاء البرنامج بالكامل بحلول وقت تشغيل .NET. يمكن استخدام كتلة catch للتعامل مع أي أو استثناءات محددة.
تيكوبيديا تشرح Catch Block
يسمح نموذج معالجة الاستثناء الخاص بوقت تشغيل اللغة العامة (CLR) بأكثر من كتلة تجميع ، تم تصميم كل منها للتعامل مع استثناء محدد. كلما حدث استثناء ، يبحث CLR عن كتلة catch التي تعالج الاستثناء. إذا كانت طريقة التنفيذ الحالية لا تحتوي على مثل هذا الحظر ، فإن CLR تبحث عنه بالطريقة التي تسمى الطريقة الحالية في مكدس الاستدعاءات. إذا لم يتم العثور على جملة مطابقة لهذا الاستثناء في التعليمات البرمجية بالكامل ، فسيتم إيقاف تنفيذ سلسلة الرسائل ، ويتم عرض رسالة استثناء غير معالَجة للمستخدم.
فيما يلي بعض النصائح المتعلقة باستخدام كتلة catch:
- يجب تحديد نوع الاستثناء لحظر الالتقاط فقط بعد تحديد السبب وراء حدوث استثناءات غير قابلة للإلغاء محددة (مثل فشل النظام الكارثي وإساءة استخدام واجهة برمجة التطبيقات وما إلى ذلك) وتم تنفيذ الاسترداد دون ترك التطبيق بطريقة غير متسقة أو حالة غير صالحة.
- يجب وضع كتلة catch بحيث يتم اكتشاف الاستثناءات الأكثر تحديدًا قبل الاستثناءات الأقل تحديدًا.
- يشار إلى كتلة الالتقاط بدون معلمات باسم "استثناءات الأكل" لأن هذا يمكن أن يقمع المشاكل الشديدة التي يصعب تصحيحها.
- يمكن أن يكون مركز الالتقاط مركزيًا بحيث يمكنه معالجة الاستثناء من موقع مركزي.
- يمكن استخدام عبارة "رمي" داخل كتلة catch التي يمكن من خلالها تمرير كائن الاستثناء نفسه الذي تم تمريره مرة أخرى أثناء إعادة الظهور.
- لا يمكن استخدام المتغيرات التي تم الإعلان عنها داخل كتلة try خارجها.
- لن يتم استئناف التعليمات البرمجية مرة أخرى إلى كتلة المحاولة بعد تنفيذ كتلة catch.
- يعد اختبار رمز معالج الاستثناء في كتلة catch ضروريًا لتجنب كسر التطبيق.
- لا ينبغي أن تستخدم كتلة الصيد لرمز التنظيف.
- لا يمكن استخدام كتلة الالتقاط بدون معلمات لمعالجة الاستثناءات غير المتوافقة مع نظام اللغة العامة (تلك غير المشتقة من System.Exception).