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

كتل Catch المتعددة

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

تسمح كتل catch المتعددة لك بالتعامل مع أنواع مختلفة من الاستثناءات عبر كود مخصص لكل نوع استثناء.

ابدأ بكتلة try أساسية:

try
{
    int number = int.Parse("abc");
}

أضف كتلة catch لاستثناء معين:

try
{
    int number = int.Parse("abc");
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}

يمكنك إضافة كتل catch متعددة لمعالجة استثناءات مختلفة:

try
{
    int number = int.Parse("abc");
    int result = a10 / number;
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Divide By Zero Exception: " + ex.Message);
}

ستنفذ أول كتلة catch مطابقة. رتب كتل catch الخاصة بك من أنواع الاستثناءات الأكثر تحديداً إلى الأكثر عمومية.

challenge icon

التحدي

سهل

أنشئ دالة باسم DivideNumbers تأخذ معاملين من نوع string:

  • numeratorStr: سلسلة نصية تمثل البسط
  • denominatorStr: سلسلة نصية تمثل المقام

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

  1. محاولة تحويل كلتا السلسلتين إلى أعداد صحيحة
  2. محاولة قسمة البسط على المقام
  3. إرجاع النتيجة كعدد صحيح
  4. معالجة FormatException عن طريق طباعة "Invalid format" وإرجاع 0
  5. معالجة DivideByZeroException عن طريق طباعة "Cannot divide by zero" وإرجاع 0
  6. معالجة أي استثناءات أخرى باستخدام كتلة catch عامة تطبع "An error occurred" وإرجاع 0

ورقة مرجعية

تسمح لك كتل catch المتعددة بمعالجة أنواع مختلفة من الاستثناءات (exceptions) باستخدام كود محدد لكل نوع استثناء.

جملة try-catch أساسية مع استثناء محدد:

try
{
    int number = int.Parse("abc");
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}

كتل catch متعددة لاستثناءات مختلفة:

try
{
    int number = int.Parse("abc");
    int result = 10 / number;
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Divide By Zero Exception: " + ex.Message);
}

سيتم تنفيذ أول كتلة catch متطابقة. قم بترتيب كتل catch من أنواع الاستثناءات الأكثر تحديداً إلى الأكثر عمومية.

جرّب بنفسك

using System;

public class Program
{
    public static int DivideNumbers(string numeratorStr, string denominatorStr)
    {
        // اكتب كودك هنا
    }
    
    public static void Main(string[] args)
    {
        string numeratorStr = Console.ReadLine();
        string denominatorStr = Console.ReadLine();
        
        int result = DivideNumbers(numeratorStr, denominatorStr);
        Console.WriteLine("Result: " + result);
    }
}
quiz iconاختبر نفسك

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

جميع دروس Logic & Flow