التعامل مع أخطاء الفئات في ++C

القسم الثاني : التعامل مع أخطاء الفئات

c

يقدم لنا نظام بورلاند ألية مفيدة للغاية في البرمجة الكائنية , فهي تمكننا من التعامل مع الأخطاء التي يمكن أن تحدث أثناء استدعاء دالة منتمية لفئة ما , يطلق علي هذه الألية "الأستثتاء exeptions " وتقوم هذه الألية علي أربعة عناصر :

1- فئة الاستثناء exeption class : وهي فئة تعرف داخل الفئة المراد متابعة حدوث الأخطاء بها .

2- استثارة الاستثناء throwing an exeption : ويقصد بذلك وضع الشرط الذي ينتج عنه استثارة ألية الاستثناء في الدالة التي يخشي وقوع الخطأ عند استدعائها , وتكون الاستثارة باستدعاء بادئة فئة الاستثناء , فتلحق كائنا خاصا بها يتولي التعامل مع الخطأ .

3- كتلة تنفيذ الاستثناء :exeption handler (catch block) مجموعة الأوامر المنفذة عند حدوث الخطأ .

وعلي ذلك يلزم لتطبيق الألية المذكورة استخدام ثلاث كلمات حاكمة :

Throw : لاستثارة الاستثناء

Try : وتسبق كتلة التجربة لتحديد .

Catch : وهي تتلو المجموعة السابقة علي الفور , وتحدد كتلة تنفيذ الاستثناء .

وإليك مثالا تطبيقا . لنرجع إلي المثال stackaray.cpp ونتصور أننا نريد أن ندخل ألية الاستثناء لمتابعة حالتي استثناء ؛ إدخال عدد أكبر من سعة المكدس , أو سحب عدد أكبر مما به . و سوف نجعل المكدس صغيرا (ثلاثة بيانات فقط) حتي يمكننا استثارة الألية بسهولة :

Xstack.cpp

ولنتابع العناصر الأربعة لألية متابعة الأخطاء :

1- فئة الاستثناء ادخلت الفئة Range في فئة المكدس , وتلاحظ أنها فئة فارغة ليس بها بيانات أو دوال منتمية , فكل ما نحتاجه منها هو البادئة التي تنتج كائنا يقوم بربط استثارة الخطأ بكتلة تنفيذ إجرائه . (ليست كل فئات الاستثارة فارغة , أنظر لاحقا – الاستثناء ذو المعاملات ) .

2- استثارة الاستثناء : تلاحظ أن الأمر :

Throw Range();

والذي يعني استثارة بادئة الفئة Range قد ورد في دالتين منتميتين , هما الدالة push() والدالة pop() وفي كل وضع الأمر بعد شرط استثارة الحالة الاستثنائية .

3- كتلة التجربة : وضعت مجموعة الأوامر المطلوب متابعة الحالة الاستثنائية بها بعد الكلمة الحاكمة try , ويمكن أن يكون بالبرنامج أوامر تخرج عن هذا النطاق (لا علاقة لها بالخطأ ) , كما يمكن أن يوجد أكثر من كتلة للتجربة .

4- تنفيذ الاستثناء : يجب أن يتبع كتلة التجربة علي الفور كتلة مميزة بالكلمة الحاكمة catch يضم الأوامر المراد تنفيذها عند حدوث الخطأ . والتنفيذ في مثالنا هو إظهار رسالة بحدوث الخطأ .

بعد تنفيذ هذه الأوامر إما أن يستمر البرنامج بعد كتلة التنفيذ مباشرة , وإما ينتهي البرنامج وهي الحالة الأعم .

تعليقات

المشاركات الشائعة من هذه المدونة

المؤثرات الحسابية في C++

الرسم Graphics

دوال النمط الرسومي في ++C