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

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

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

try
{
// هنا نكتب الأوامر التي قد تسبب إستثناء
}
catch(...)
{
// سيقوم المترجم بالإنتقال لهنا try أي إستثناء يحدث في الجملة
}
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;
}
#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!