إدارة الاستثناءات في c# exception

إدارة الاستثناءات في C#

إدارة الاستثناءات في C#

إدارة الاستثناءات في c#

قد تحتوي البرامج التي نكتبها أحيانًا على مشاكل وأخطاء.
بالطبع ، في لغة c# ، نستخدم مترجمًا قويًا جدًا ويساعدنا في العثور على هذه الأخطاء.

ومع ذلك ، من الواضح أنه بغض النظر عن مدى قوة المترجم ، فإنه لا يمكنه التنبؤ بجميع الأخطاء.
في هذه الحالة ، يقوم .NET framework بإنشاء استثناء ، في الواقع ، يخبرنا هذا الاستثناء أن هناك مشكلة في البرنامج.
دعنا نلقي نظرة على المصفوفة. ضع في اعتبارك الكود التالي:

إذا قمت بتشغيل المثال أعلاه ، فستعرف ما أتحدث عنه.
هل تواجه مشاكل أثناء الجري؟ في المثال أعلاه ، قمنا بتعريف مصفوفة من الأعداد الصحيحة ذات السعة المزدوجة.
لكننا نحاول أن نضع قيمة في المنزل الثالث من هذه المجموعة وهو غير موجود.

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

إدارة الاستثناءات في C#

اسمحوا لي أن أقدم لكم صديقنا الجديد الذي يأتي لمساعدتنا عندما يتعلق الأمر بمعالجة الأخطاء.
منع try..catch الآن ، قم بتشغيل البرنامج أعلاه على جهاز الكمبيوتر الخاص بك وشاهد الفرق بنفسك.
الآن ، بدلاً من Visual Studio أو بيئة نظام التشغيل التي تخبرنا أن لدينا مشكلة خطيرة ، فمن الأفضل إدارة هذا الخطأ بأنفسنا وإرسال رسالة مناسبة إلى المستخدم

في المثال أعلاه ، أخبرنا مستخدمنا عند إنشاء هذا الخطأ ، أن هناك مشكلة.
لكن من الأفضل عدم تحديد نوع المشكلة.
نعم ، يمكنك أيضًا القيام بذلك:

كما ترى ، أضفنا شيئًا ما إلى العبارة catch الآن يمكننا الإعلان عن الاستثناء الذي حدث.
توجد أنواع مختلفة من الاستثناءات في c# ، وكلها تستند إلى الفئة Exception.
باستخدام الكود أعلاه ، يتم توفير شرح مفهوم لنوع المشكلة. كما هو مذكور أعلاه ، Exception هو النوع الأكثر شيوعًا للاستثناء.

إدارة الاستثناءات في C#

إدارة الاستثناءات في C#

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

نتيجة الكود أعلاه لا شيء باستثناء IndexOutOfRangeException.
لذلك يتعين علينا التعامل مع هذا الاستثناء بأفضل شكل ممكن ولكن لا شيء يقيدنا في التعامل مع أنواع مختلفة من الاستثناءات.
يمكنك القيام بأشياء مختلفة في بعض الأحيان ، على سبيل المثال ، يمكنك القيام بما يلي:

كما ترى ، في البداية نبحث عن الاستثناء IndexOutOfRangeException.
بالطبع ، كان بإمكاننا فعل ذلك بطريقة مختلفة. يمكن لمجموعة الاستبدال catch جنبًا إلى جنب مع الفئة Exception القيام بذلك بالنسبة لنا ، نظرًا لأن جميع الاستثناءات مشتقة من هذه الفئة.
ومع ذلك ، من الأفضل دائمًا كتابة الاستثناءات الأكثر تحديدًا أولاً.

شيء آخر يجب معرفته حول الاستثناءات هو كتلة finally.
يمكن وضع الكتلة finally في نهاية مجموعة الكتل catch.
ذلك يعتمد على الاحتياجات الخاصة بك.
سيتم تنفيذ الكود الذي تكتبه في الكتلة finally سواء حدث الاستثناء أم لا. هذه الكتلة مفيدة بشكل خاص عندما تريد إغلاق المراجع والكائنات.

بالطبع ، نظرًا لحقيقة أن الأمثلة التي قدمناها في هذه المقالة بسيطة جدًا ، لا نحتاج إلى أي تنظيف ، ومع ذلك ، تم تضمين المثال التالي في المثال:

إذا قمت بتشغيل الكود أعلاه ، فسترى أنه يتم تنفيذ كل من كتل الاستثناءات والكتل finally.
شيء آخر مهم يجب معرفته هو أن الشفرة الموضوعة بعد الاستثناء لن يتم تنفيذها.
في المثال أعلاه ، بعد حدوث الاستثناء وتنفيذ الكتل ذات الصلة ، سيتم تنفيذ السطر فقط (Console.ReadLine) ولن يصل المترجم إلى الحلقة foreach.

أخيرا نتمنى أن يكون درس إدارة الاستثناءات في c# قد أفادكم

يسعدنا إثراء الموضوع من خلال تعليقاتكم و استفساراتكم المفيدة

مع تحيات موقع hdegy

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *