كيفية تنفيذ معالجة الاستثناءات في C ++؟



ستساعدك هذه المقالة على فهم ما هو معالجة الاستثناءات وكيفية تنفيذ معالجة الاستثناءات في C ++ مع عرض عملي.

استثناءات هي ظروف غير طبيعية أثناء وقت التشغيل أو وقت الترجمة. هو مفهوم أساسي للغاية في C ++. ستقدم لك هذه المقالة معالجة الاستثناءات في C ++ إلى جانب أنواعها المختلفة.

التجريد في ++ C

سيتم تغطية المؤشرات التالية في هذه المقالة ،





فلنبدأ إذن ،

معالجة الاستثناءات في C ++

أنواع الاستثناءات

هناك نوعان من الاستثناءات ،



استثناء وقت التشغيل

إنه استثناء تم اكتشافه أثناء وقت التشغيل.

استثناء وقت الترجمة



إنه استثناء تم اكتشافه أثناء وقت الترجمة.

المضي قدمًا في مقالة معالجة الاستثناءات هذه في C ++ ،

ما هي معالجة الاستثناءات؟

تعطل الأخطاء التنفيذ العادي للبرنامج. تعتبر معالجة الاستثناءات ضرورية للغاية ، وهي عملية معالجة الأخطاء أو الاستثناءات. يتأكد من أن تنفيذ البرنامج لا يتأثر بالاستثناءات ويتعامل معها ببطء دون التسبب في أي مشكلة في تنفيذ البرنامج.

عندما تفكر في معالجة الاستثناءات ، هناك ثلاثة مصطلحات مرتبطة بها ،

محاولة

يشبه الكود الموجود داخل هذه الكتلة رمزًا تجريبيًا ، والذي قد يؤدي إلى استثناء. تم اكتشاف هذا الاستثناء داخل كتلة الصيد.

قبض على

يتم تنفيذ الكود الموجود في هذه الكتلة عندما يطرح الرمز الموجود في كتل try استثناءً.

يرمي

يتم استخدام هذه الكلمة الأساسية لطرح استثناء عند مصادفته. يتم إرسال الاستثناء إلى معالج الاستثناء.

بناء الجملة:

يتم تنفيذ الكود الموجود داخل كتلة try. إذا كان هناك خطأ تم إنشاؤه ، فإن الكلمة الأساسية تلقي الاستثناء لمعالج الاستثناء ، أي كتلة catch. ثم تقوم كتلة catch بتنفيذ الكود الموجود داخل كتلتها ، وبالتالي معالجة الاستثناء.

دعونا نلقي نظرة على نموذج التعليمات البرمجية لمعالجة الاستثناءات في c ++

عينة من الرموز

#include using namespace std try {// code for try throw & ldquoexception & rdquo} catch (استثناء) {// code for catch} int main () {int x = 1 try {cout<< 'Try Block: '<

انتاج:

الإخراج - الاستثناءات في C ++ - Edureka

تفسير

يوضح هذا البرنامج معالجة الاستثناءات. لدينا المتغير x ، والذي تم تعيينه بقيمة 1. ثم لدينا بداية كتلة try. في هذه الكتلة ، لدينا تعليمة if بالشرط x<10.

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

catch (...) {التكلفة<< 'Default Exceptionn'<

أخيرًا ، نقوم بتنفيذ التعليمات المتبقية بعد برنامج block و exit.

يمكن أن يكون هناك عدة بيان catch ، حسب عدد الاستثناءات الممكنة.

المضي قدمًا في مقالة معالجة الاستثناءات هذه في C ++ ،

فشل كاتش بلوك

ضع في اعتبارك البرنامج السابق ، إذا ألقت الكلمة الرئيسية 'ABC' بدلاً من x ، فلن تتمكن وظيفة catch من التعامل معها. سيظهر خطأ ،

يمكننا عرض رسالة الخطأ التي تم الفوز بها في مثل هذه الحالة.

لحل هذه المشكلة ، نحتاج إلى إضافة وظيفة التقاط افتراضية إلى الكود للتعامل مع مثل هذه المشكلات.

هي درجة الماجستير على درجة الدراسات العليا
# تضمين باستخدام مساحة الاسم std int main () {int x = 1 try {cout<< 'Try Block: '<

الإخراج:

تفسير:

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

إذا لم تكن أي من عبارات catch متطابقة ، فسيتم تنفيذ المصيد الافتراضي.

كتل الصيد المتعددة

يمكن أن يكون هناك كتل التقاط متعددة من كتلة محاولة واحدة.

هنا مثال،

#include using namespace std int test (int a) {try {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<

انتاج:

تفسير:

في الكود أعلاه ، نستخدم عبارات catch متعددة. لدينا اختبار وظيفي يولد استثناء. في حالة الاختبار الأولى ، تكون القيمة 10. نظرًا لأن 10 أكبر من الصفر ، يتم إلقاء الحرف 'a' ويتم التقاطه بواسطة دالة catch الثانية.

في الحالة الثانية ، تكون القيمة أقل من 0 لذلك يتم طرح القيمة -1 ويتم التقاطها بواسطة استثناء عدد صحيح

معالجة الاستثناءات في الفئة الأساسية والمشتقة:

إذا تم اكتشاف استثناءات الفئة الأساسية والمشتقة ، فيجب تنفيذ التقاط الفئة المشتقة قبل الفئة الأساسية.

فيما يلي بعض الاستثناءات:

  • الأمراض المنقولة جنسيا :: استثناء

  • منطق_خطأ

  • خطا وقت التشغيل

  • bad_alloc

  • سيئة_كاست

  • استثناء سيء

بهذا نصل إلى نهاية هذه المدونة حول 'معالجة الاستثناءات في C ++'. آمل أن تكون قد وجدت هذه المعلومات مفيدة ومفيدة ، ترقبوا المزيد من البرامج التعليمية حول مواضيع مماثلة. يمكنك أيضًا مراجعة برنامجنا التدريبياحصل على معرفة متعمقة حول jQuery مع تطبيقاته المختلفة ، يمكنك ذلك للتدريب المباشر عبر الإنترنت مع دعم على مدار الساعة طوال أيام الأسبوع وإمكانية الوصول مدى الحياة.

لديك سؤال لنا؟ أذكرها في قسم التعليقات في هذه المدونة وسنعاود الاتصال بك.