Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

C++إلتقاط الإستثناء مهما كان نوعه

إذا كنت لا تعرف نوع الإستثناء الذي قد يسببه الكود أو كنت تعرف فقط بعض أنواع الإستثناءات التي قد تحدث و تريد حماية الكود من كل الإستثناءات التي قد تحدث يمكنك وضع الرمز ... فقط في الدالة catch() كالتالي.

try
{
    // هنا نكتب الأوامر التي قد تسبب إستثناء
}
catch(...)
{
    // سيقوم المترجم بالإنتقال لهنا try أي إستثناء يحدث في الجملة
} 


في المثال التالي قمنا بتعريف دالة إسمها checkAge() عند استدعاءها نمرر لها عدد يمثل العمر, فتقوم بالتشييك عليه و إظهار أخطاء في حال كان العمر أصغر أو يساوي 0 أو كان أكبر من 130 أو أو كان أقل من 18.

مثال

main.cpp
#include <iostream>

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!