كتل 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 من أنواع الاستثناءات الأكثر تحديدًا إلى الأكثر عمومية.
التحدي
سهلأنشئ أسلوبًا باسم DivideNumbers يأخذ معاملي numeratorStr وdenominatorStr من النوع string:
numeratorStr: قيمة من النوعstringتمثل البسطdenominatorStr: قيمة من النوعstringتمثل المقام
ينبغي للأسلوب أن:
- يحاول تحويل السلسلتين إلى عددين صحيحين
- يحاول قسمة البسط على المقام
- يعيد النتيجة كعدد صحيح
- يتعامل مع
FormatExceptionمن خلال طباعة "Invalid format" وإعادة 0 - يتعامل مع
DivideByZeroExceptionمن خلال طباعة "Cannot divide by zero" وإعادة 0 - يتعامل مع أي استثناءات أخرى باستخدام كتلة
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);
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادتعريف وتهيئة المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادالمصفوفات المتعرجة (Jagged Arrays)عمليات المصفوفات الشائعةمراجعة - المصفوفات متعددة الأبعاد4تقنيات التحكم في التدفق
الإرجاع المبكرشروط الحمايةجمل القفز (goto)Break و Continueتسطيح الشروط المتداخلة7المعاملات المنطقية المتقدمة
التقييم المختصرالمعاملات المنطقية الشرطيةأولوية المعاملاتمراجعة - المعاملات المتقدمة2اتخاذ القرارات المتقدم
الشروط المتعددةالمنطق البولياني المعقدمقارنة بين If و Switchجمل Switch المتداخلةمراجعة - القرارات المتقدمة5معالجة الاستثناءات
أساسيات Try-Catchأنواع الاستثناءاتكتل Catch المتعددةالتعامل مع الملفاتكتلة FinallyUsing مقابل Try-Finallyاستثناءات مخصصةمراجعة - معالجة الأخطاء8نظام تحليل البيانات
إعداد جمع البياناتمنطق إدخال البيانات11HashSet الجزء الأول
ما هو الـ HashSet؟إضافة عنصرحذف عنصرالتحقق من وجود عنصرالفراغ والحجمملخص - HashSet3تحسينات الحلقات التكرارية
أداء الحلقات التكراريةالتكرار عبر البيانات المعقدةأنواع الحلقات التكراريةإعادة هيكلة الحلقات التكراريةملخص - الحلقات المحسنة6التعامل مع الـ Null
أساسيات الـ Null Referenceأنواع القيم القابلة للـ Nullأنماط التحقق من الـ Nullالبرمجة الدفاعيةملخص - أمان الـ Nullتدرّب بنفسك: مترجم C# عبر الإنترنت