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

C++تعريف دالة ترمي إستثناءات من أكثر من نوع

في المثال التالي قمنا بتعريف دالة إسمها checkWord() عند استدعاءها نمرر لها نص لتتحقق منه و التأكد ما إن كان يحتوي على كلمة واحدة أم لا.
الدالة سترمي إستثناء قيمته العدد 0 في حال تم تمرير نص فارغ لها, و سترمي إستثناء قيمته الكلمة 'Space' في حال تم تمرير أكثر من كلمة لها.

مثال

main.cpp
#include <iostream>
using namespace std;
// عند استدعاءها نمرر لها نص checkWord() هنا قمنا بتعريف دالة إسمها
checkWord(string s)
{
// في حال كان النص الذي تم تمريره لا يحتوي على أي حرف سيتم رمي إستثناء عبارة عن عدد قيمته 0
if (s.empty())
throw 0;
// "Space" في حال كان النص الذي تم تمريره يحتوي على مسافة فارغة سيتم رمي إستثناء عبارة عن نص قيمته
if (s.find(" ") != string::npos)
throw "Space";
}
// main() هنا قمنا بتعريف الدالة
int main()
{
// هنا قمنا بتعريف النص الذي سنقوم بالتشييك على قيمته
string s = "Hello Word!";
// s للتشييك على قيمة المتغير checkWord() هنا قمنا باستدعاء الدالة
try
{
checkWord(s);
}
// في حال تم رمي إستثناء قيمته العدد 0, سيتم معالجته هنا
catch(int e)
{
cout << "Error: string length is empty! \n";
}
// سيتم معالجته هنا ,Space في حال تم رمي إستثناء قيمته الكلمة
catch(char const* e)
{
cout << "Error: string contain a whitespace! \n";
}
// في حال تم رمي إستثناء من أي نوع آخر, سيتم معالجته هنا
catch(...)
{
cout << "Error: something is not right! \n";
}
cout << "The program is still working properly :)";
return 0;
}
#include <iostream> using namespace std; // عند استدعاءها نمرر لها نص checkWord() هنا قمنا بتعريف دالة إسمها checkWord(string s) { // في حال كان النص الذي تم تمريره لا يحتوي على أي حرف سيتم رمي إستثناء عبارة عن عدد قيمته 0 if (s.empty()) throw 0; // "Space" في حال كان النص الذي تم تمريره يحتوي على مسافة فارغة سيتم رمي إستثناء عبارة عن نص قيمته if (s.find(" ") != string::npos) throw "Space"; } // main() هنا قمنا بتعريف الدالة int main() { // هنا قمنا بتعريف النص الذي سنقوم بالتشييك على قيمته string s = "Hello Word!"; // s للتشييك على قيمة المتغير checkWord() هنا قمنا باستدعاء الدالة try { checkWord(s); } // في حال تم رمي إستثناء قيمته العدد 0, سيتم معالجته هنا catch(int e) { cout << "Error: string length is empty! \n"; } // سيتم معالجته هنا ,Space في حال تم رمي إستثناء قيمته الكلمة catch(char const* e) { cout << "Error: string contain a whitespace! \n"; } // في حال تم رمي إستثناء من أي نوع آخر, سيتم معالجته هنا catch(...) { cout << "Error: something is not right! \n"; } cout << "The program is still working properly :)"; return 0; }

سنحصل على النتيجة التالية عند التشغيل.

Error: string contain a whitespace!
The program is still working properly :)