كيفية التعامل مع الاستثناءات بسهولة في C++

Kyfyt Alt Aml M Alastthna At Bshwlt Fy C



ويشار إلى الأحداث غير المتوقعة التي تحدث أثناء تشغيل البرنامج على أنها استثناءات أو أخطاء. تحدث الاستثناءات أثناء وقت التشغيل، ولا يمكن اكتشافها أثناء التجميع، لذلك قد تسبب مشكلات خطيرة في البرنامج. يعد التعامل مع الاستثناءات بشكل جيد في برنامج C++ هدفًا رئيسيًا للمبرمج للحصول على النتائج المرجوة.

كيفية التعامل مع الاستثناءات بسهولة في C++

تشير معالجة الاستثناءات في لغة C++ إلى آلية اكتشاف أخطاء وقت التشغيل ومعالجتها بكفاءة، مثل معالجة المدخلات غير الصالحة، وتقسيم الرقم على صفر في عمليات القسمة، وغيرها الكثير.

تتضمن معالجة الاستثناءات في لغة C++ ثلاث كلمات رئيسية: حاول، ورمي، والتقط. تسمح عبارة المحاولة للمستخدم بتحديد كتلة التعليمات البرمجية التي قد تثير استثناءً في التعليمات البرمجية. تطرح الكلمة الأساسية throw استثناءً إذا تم اكتشافها بعد التحقق من الحظر ضمن الكلمة الأساسية Try. تحتوي الكلمة الأساسية Catch على كتلة التعليمات البرمجية التي يمكنها التعامل مع الاستثناء الذي تمت ملاحظته في كتلة المحاولة.







مثال 1: معالجة الاستثناءات أثناء التقسيم

تمت كتابة الكود للتحقق من الاستثناءات أثناء القسمة.



#تشمل
استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

كثافة العمليات رئيسي ( ) {

مزدوج البسط، المقام، القسمة ;

cout << 'أدخل قيمة البسط:' ;
يتناول الطعام >> البسط ;

cout <> المقام - صفة مشتركة - حالة ;

يحاول {


لو ( المقام - صفة مشتركة - حالة == 0 )
يرمي 0 ;


قسم = البسط / المقام - صفة مشتركة - حالة ;
cout << البسط << '/' << المقام - صفة مشتركة - حالة << ' = ' << قسم << endl ;
}

يمسك ( كثافة العمليات num_exception ) {
cout << 'خطأ! لا يمكن أن يكون المقسوم عليه  ' << num_exception << endl ;
}

يعود 0 ;
}

في هذا البرنامج، يقوم المستخدم بإدخال قيمة البسط والمقام المعلنين في القسم الرئيسي (). في كتلة المحاولة، يتم استخدام عبارة if للتحقق من الاستثناء وهو ما إذا كان المقام صفرًا أم لا. نظرًا لأنه لا يمكن إجراء القسمة بمقسوم صفري إذا وجد أن المقام هو 0، فسوف يتم طرح استثناء وستقوم كتلة الالتقاط بإرجاع وسيطة خطأ وإلا سيتم تنفيذ عملية القسمة البسيطة.







يقوم المستخدم بإدخال البسط 42 والرقم 0 في المقام، مما يؤدي إلى حدوث استثناء، لذلك يقوم البرنامج بإرجاع وسيطة الخطأ.



يقوم المستخدم بإدخال البسط 42 و 2 كمقام، حيث لم يتم العثور على استثناء، وتعود النتيجة بعد القسمة.

مثال 2 معالجة الاستثناء للتحقق من العمر

يتحقق هذا البرنامج من الاستثناءات في عمر المستخدم.

#تشمل
استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

/*
نريد هنا طرح الاستثناء (العمر كاستثناء) إذا كان عمر الشخص أقل من 18 عامًا.
*/

كثافة العمليات رئيسي ( )
{
// التحقق مما إذا كان العمر أكبر من 18 عامًا في كتلة المحاولة.
يحاول
{
كثافة العمليات عمر ;
cout << 'أدخل عمرك للوصول:' ;
يتناول الطعام >> عمر ;

لو ( عمر >= 18 )
{
cout << 'لقد تم منح الوصول.' ;
}
// يتم طرح استثناء مخصص إذا كان العمر أقل من 18 عامًا.
آخر
{
يرمي ( عمر ) ;
}
}
// التقاط الاستثناء الذي تم طرحه وعرض الإخراج المطلوب (تم رفض الوصول!)
يمسك ( كثافة العمليات س )
{
cout << 'تم رفض الوصول! أنت قاصر.' << endl ;
}
يعود 0 ;
}

في هذا البرنامج يتم تعريف متغير ذو قيمة عددية. يُطلب من المستخدم إدخال العمر ومحاولة التحقق من الحظر إذا كان عمر المستخدم أعلى أو يساوي 18 عامًا. إذا لم يكن ذلك صحيحًا، فسيتم طرح استثناء، وسيُرجع حظر الاستثناء الوصول مرفوضًا! دعوى. وبخلاف ذلك، سيتم منح حق الوصول.

يقوم المستخدم بإدخال العمر ليكون 12 عامًا للتحقق من منح الوصول، نظرًا لأن هذا العمر أقل من 18 عامًا، لذلك يتم إرجاع الوسيطة رفض الوصول.

يقوم المستخدم بإدخال العمر 20 عامًا، حيث أنه أكبر من 18 عامًا، لذلك يتم منح حق الوصول للمستخدم.

ملحوظة : إذا لم يكن هناك كتلة التقاط في البرنامج، فسيتصرف البرنامج بشكل غير طبيعي وينتهي بشكل غير متوقع في حالة وجود استثناءات.

خاتمة

تشير معالجة الاستثناءات في لغة C++ إلى آلية اكتشاف أخطاء وقت التشغيل ومعالجتها بكفاءة. يتضمن ثلاث كلمات رئيسية: حاول، ورمي، والتقط. يتم التحقق من الاستثناء للكود الموجود في كتلة المحاولة، وتطرح الكلمة الأساسية للرمي الاستثناء إذا تم العثور عليه، وتعالج كتلة الالتقاط الاستثناء الذي تم طرحه لكتلة المحاولة. التعامل مع الاستثناءات يجعل تجربة المستخدم سلسة ورائعة من خلال تجنب أخطاء وقت التشغيل.