مثال
main.cpp
#include <iostream>
#include <exception>
using namespace std;
// لأننا نريده أن يمثل إستثناء exception يرث من الكلاس MyException هنا قمنا بتعريف كلاس إسمه
class MyException : public exception
{
public:
// لجعلها ترمي الإستثناء الذي نريده عندما نقوم باستدعائها what() هنا قمنا بتعريف الدالة
const char* what() const throw ()
{
return "My Exception is thrown! \n";
}
};
// main() هنا قمنا بتعريف الدالة
int main()
{
// الموجودة فيه what() حتى نتمكن من استدعاء الدالة myExcep إسمه MyException هنا قمنا بإنشاء كائن من الكلاس
MyException myExcep;
// الموجودة فيه بشكل تلقائي what() و الذي بدوره سيقوم باستدعاء الدالة myExcep هنا قمنا برمي إستثناء نوعه
try
{
throw myExcep;
}
// الموجودة فيه what() سيتم إستدعاء الدالة MyException هنا قلنا أنه في حال كان الإستثناء الذي تم رميه نوعه
catch(MyException& e)
{
cout << e.what();
}
// و هنا نقصد من أي نوع كان exception هنا قلنا أنه في حال كان الإستثناء الذي تم رميه نوعه
catch(exception& e)
{
// هنا يمكنك كتابة ماذا نريد أن نفعل في حال حدوث أي إستثناء آخر
}
cout << "The program is still working properly :)";
}
سنحصل على النتيجة التالية عند التشغيل.
My Exception is thrown!
The program is still working properly :)