C++إلتقاط الإستثناء مهما كان نوعه
إذا كنت لا تعرف نوع الإستثناء الذي قد يسببه الكود أو كنت تعرف فقط بعض أنواع الإستثناءات التي قد تحدث و تريد حماية الكود من كل الإستثناءات التي قد تحدث يمكنك وضع الرمز ...
فقط في الدالة catch()
كالتالي.
try { // هنا نكتب الأوامر التي قد تسبب إستثناء } catch(...) { // سيقوم المترجم بالإنتقال لهنا try أي إستثناء يحدث في الجملة }
في المثال التالي قمنا بتعريف دالة إسمها checkAge()
عند استدعاءها نمرر لها عدد يمثل العمر, فتقوم بالتشييك عليه و إظهار أخطاء في حال كان العمر أصغر أو يساوي 0
أو كان أكبر من 130
أو أو كان أقل من 18
.
مثال
using namespace std; // عند استدعاءها نمرر لها عدد يمثل العمر checkAge() هنا قمنا بتعريف دالة إسمها void checkAge(int age) { // في حال كان العمر الذي تم تمريره لها أصغر أو يساوي 0 سترمي إستثناء if (age <= 0) throw "Error: Entered age can't be less or equal zero!"; // في حال كان العمر الذي تم تمريره لها أكبر من 130 سترمي إستثناء if (age > 130) throw "Error: Entered age is impossible!"; // في حال كان العمر الذي تم تمريره لها أصغر من 18 سترمي إستثناء if (age < 18) throw "Error: You are not allowed!"; // إذا لم يتم رمي أي إستثناء سيتم تنفيذ أمر الطباعة التالي و الذي يعني أن العمر مقبول cout << "Age confirmed!"; } // main() هنا قمنا بتعريف الدالة int main() { // و تمرير القيمة 15 لها checkAge() هنا قمنا باستدعاء الدالة try { checkAge(15); } // بالتقاطه و طباعة الجملة الموضوعة فيه catch() ستقوم الدالة try أي إستثناء يتم رميه في الجملة catch (...) { cout << "Oops.. Something is not right!"; } return 0; }
سنحصل على النتيجة التالية عند التشغيل.
Oops.. Something is not right!