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 = 10 / 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

التحدي

سهل

قم بإنشاء طريقة (method) تسمى DivideNumbers تأخذ معاملين من نوع سلسلة نصية (string):

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

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

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

جرّب بنفسك

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