بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته:
سؤالي اليوم عن استخدام الاستثناءات في البرنامج، وبصيغة أوضح لقد وضعت مثال مبسط دالة تحسب مساحة مستطيل ونقوم بعمل استثناء لكل من:
1- كون الرقم بالسالب.
2- كون الرقم أكبر من الحد المسموح به للإدخال حتى لا يكون هنالك لف للرقم.
3- إذا أدخل حرف أو نص بدل رقم.
و إليكم البرنامج:
#include <iostream.h>
class RAR { };
class Rar { };
float Area()
{
float x,y;
cout << " Enter Tow Numbers from 1 to 32767 : ";
cout << "\n One Number = ";
cin >> x;
cout << "\n Tow Number = ";
cin >> y;
if( x<=0 || y<=0 )
{
throw RAR();
}
else if( x>=32767 || y>=32767 )
{
throw Rar();
}
return x*y;
}
int main()
{
try
{
cout << " Area = " << Area() << endl;
}
catch(RAR)
{
cout << "\n Numbers <=0 " << endl;
}
catch(Rar)
{
cout << "\n Numbers >=32767 " << endl;
}
catch(...)
{
cout << "\n Input Error ";
}
return 0;
}والسؤال أخواني الكرام هو عندما أقوم بإدخال حرف أو نص يصيد الاستثناء الأول وهو الأقل من الصفر وأنا أريده أن تصيده عبارة catch(…) الأخيرة ولكن لا فائدة لم أفلح بذلك فما هو الحل من وجهة نظركم؟؟؟؟؟؟؟
وأيضاً متى استخدم عبارة catch(…) إذا كان استخدامها في هذا البرنامج خطأ؟!؟!
وتقبلوا تحياتي.