التعامل مع أخطاء الفئات في ++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 يضم الأوامر المراد تنفيذها عند حدوث الخطأ . والتنفيذ في مثالنا هو إظهار رسالة بحدوث الخطأ .
بعد تنفيذ هذه الأوامر إما أن يستمر البرنامج بعد كتلة التنفيذ مباشرة , وإما ينتهي البرنامج وهي الحالة الأعم .
تعليقات
إرسال تعليق