تخطَّ إلى المحتوى

#️⃣ شرح C#

معالجة الاستثناءات

الدرس 19 من 30· ⏱ 1 دقائق قراءة· 🗓 آخر تحديث: ٢٦ يونيو ٢٠٢٦

try / catch

try
{
    int result = 10 / int.Parse("0");
}
catch (DivideByZeroException)
{
    Console.WriteLine("لا يمكن القسمة على صفر");
}

التقاط الرسالة

try { /* ... */ }
catch (Exception ex)
{
    Console.WriteLine($"خطأ: {ex.Message}");
}

عدّة catch

try { /* ... */ }
catch (FormatException) { Console.WriteLine("تنسيق خاطئ"); }
catch (OverflowException) { Console.WriteLine("تجاوز"); }
catch (Exception) { Console.WriteLine("خطأ آخر"); }

finally

ينفّذ دائمًا — لتحرير الموارد:

try { /* ... */ }
catch (Exception) { /* ... */ }
finally { Console.WriteLine("تنظيف"); }

رمي استثناء

void SetAge(int age)
{
    if (age < 0)
        throw new ArgumentException("العمر سالب");
}

استثناء مخصّص

class InsufficientFundsException : Exception
{
    public InsufficientFundsException(string message) : base(message) { }
}

💡 التقط الاستثناءات المحدّدة قبل العامّة، ولا تبتلع الأخطاء بـ catch فارغ.

أشهر استثناء ستقابله عمليًا هو NullReferenceException — راجع حلّ NullReferenceException في C# لفهم أسبابه وكيف يمنعه نظام Nullable Reference Types.

🎯 التالي: التعامل مع الملفات.

شرح معالجة الاستثناءات — C# بالعربي
معالجة الاستثناءاتC# بالعربي · The Code Fix

📚 لمزيد من التعمّق في C#، راجِع توثيق C# من Microsoft.

هل كان هذا الدرس مفيدًا؟