Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

أساسيات Try-Catch

جزء من قسم Logic & Flow في رحلة C# على Coddy — الدرس 23 من 66.

معالجة الاستثناءات في C# تتيح لك إدارة أخطاء وقت التشغيل بشكل سلس. تُعد كتلة try-catch هي الطريقة الأساسية لمعالجة الاستثناءات.

أنشئ كتلة try-catch أساسية:

try
{
    // الكود الذي قد يتسبب في استثناء (خطأ)
    int result = 10 / 0; // سيؤدي هذا إلى حدوث DivideByZeroException
}
catch (Exception ex)
{
    // معالجة الاستثناء
    Console.WriteLine("An error occurred: " + ex.Message);
}

بعد تنفيذ الكود أعلاه، بدلاً من تعطل برنامجك، سترى:

An error occurred: Attempted to divide by zero.

يمكنك الاستمرار في تنفيذ الكود بعد كتلة catch:

try
{
    int result = 10 / 0;
    Console.WriteLine("This won't execute");
}
catch (Exception ex)
{
    Console.WriteLine("Caught an error: " + ex.Message);
}

Console.WriteLine("Program continues running");
challenge icon

التحدي

سهل

أنشئ دالة باسم DivideNumbers تأخذ عددين صحيحين كبارامترات:

  • numerator - الرقم المراد قسمته
  • denominator - الرقم الذي سيتم القسمة عليه

يجب أن تقوم الدالة بما يلي:

  1. محاولة قسمة numerator على denominator
  2. إرجاع النتيجة في حال النجاح
  3. التقاط أي DivideByZeroException وطباعة: "Cannot divide by zero!" تماماً
  4. إرجاع 0 في حال حدوث استثناء

ورقة مرجعية

تستخدم معالجة الاستثناءات في C# كتل try-catch لإدارة أخطاء وقت التشغيل بشكل سلس:

try
{
    // الكود الذي قد يتسبب في استثناء
    int result = 10 / 0;
}
catch (Exception ex)
{
    // معالجة الاستثناء
    Console.WriteLine("An error occurred: " + ex.Message);
}

يستمر تنفيذ الكود بعد كتلة catch، مما يمنع البرنامج من الانهيار. يمكنك التقاط أنواع استثناءات محددة مثل DivideByZeroException لمعالجة أخطاء أكثر دقة.

جرّب بنفسك

using System;

class Program {
    public static int DivideNumbers(int numerator, int denominator) {
        // اكتب الكود الخاص بك هنا
    }
    
    static void Main(string[] args) {
        int numerator = int.Parse(Console.ReadLine());
        int denominator = int.Parse(Console.ReadLine());
        
        int result = DivideNumbers(numerator, denominator);
        Console.WriteLine(result);
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow