0Pricing
C# Academy · درس

التشخيص البسيط: الاستثناءات مقابل فحوصات الحماية

طبّق فحوصات الحماية للمدخلات غير الصالحة المتوقعة، وارمِ الاستثناءات للحالات الاستثنائية، واستخدم try/catch لمعالجة الأخطاء بسلاسة.

التشخيص البسيط: الاستثناءات مقابل فحوصات الحماية درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 3 دروس في المجموع.

نظرة عامة على التشخيصات

الهدف: استخدم فحوصات الحماية للمشكلات المتوقعة والاستثناءات للمشكلات النادرة والخطيرة.

عرض توضيحي لفحوصات الحماية

تعيد فحوصات الحماية حالةً بدلًا من إلقاء استثناء عند إدخال قيم غير صالحة شائعة.

using System;

public class Program
{
  public static bool TryDivide(int a, int b, out int result)
  {
    if (b == 0)
    {
      result = 0;
      return false; // guard check fails
    }
    result = a / b;
    return true;
  }

  public static void Main(string[] args)
  {
    int r;
    bool ok = TryDivide(10, 0, out r);
    Console.WriteLine("ok=" + ok + " result=" + r);
  }
}

عرض توضيحي للاستثناءات

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

using System;

public class Program
{
  public static int PriceWithTax(int price, int ratePercent)
  {
    if (price < 0)
    {
      throw new ArgumentOutOfRangeException("price");
    }
    if (ratePercent < 0 || ratePercent > 100)
    {
      throw new ArgumentOutOfRangeException("ratePercent");
    }
    return price + (price * ratePercent / 100);
  }

  public static void Main(string[] args)
  {
    try
    {
      int total = PriceWithTax(100, 20);
      Console.WriteLine("Total=" + total);
    }
    catch (Exception ex)
    {
      Console.WriteLine("Error: " + ex.Message);
    }
  }
}

الجمع بين الفحوصات والاستثناءات

اجمع بين النهجين: استخدم فحوصات الحماية للتحقق الاعتيادي، والاستثناءات للحالات غير الصالحة.

using System;

public class Program
{
  public static bool TryParsePrice(string text, out int value)
  {
    return int.TryParse(text, out value); // guard check
  }

  public static int GetDiscount(int code)
  {
    if (code < 0) throw new ArgumentException("Invalid code"); // exception
    return 10;
  }

  public static void Main(string[] args)
  {
    int v;
    if (TryParsePrice("123", out v))
    {
      Console.WriteLine("Parsed " + v);
    }

    try
    {
      int d = GetDiscount(-1);
      Console.WriteLine("Discount=" + d);
    }
    catch (Exception ex)
    {
      Console.WriteLine("Error: " + ex.Message);
    }
  }
}

مثال على try/catch

استخدم try/catch لمعالجة الاستثناءات والحفاظ على استمرار تشغيل البرنامج.

using System;

public class Program
{
  public static void Main(string[] args)
  {
    try
    {
      int x = 10;
      int y = 0;
      int z = x / y; // will throw DivideByZeroException
      Console.WriteLine(z);
    }
    catch (DivideByZeroException ex)
    {
      Console.WriteLine("Cannot divide by zero: " + ex.Message);
    }
  }
}

نصائح

نصائح:

  • تعيد فحوصات الحماية قيمًا افتراضية آمنة في الحالات الشائعة.
  • ينبغي أن تكون الاستثناءات نادرة وذات دلالة.
  • لا تعالج إلا ما يمكنك التعامل معه.

فحوصات الحماية مقابل الاستثناءات

تحقق سريعًا: متى ينبغي تفضيل فحوصات الحماية على إلقاء الاستثناءات؟

خلاصة

الخلاصة: استخدم فحوصات الحماية لمدخلات غير صالحة شائعة، وألقِ الاستثناءات للحالات الاستثنائية، وعالجها باستخدام try/catch عندما يكون الاسترداد ممكنًا.

الأسئلة الشائعة

هل درس «التشخيص البسيط: الاستثناءات مقابل فحوصات الحماية» مجاني؟

نعم — نص درس «التشخيص البسيط: الاستثناءات مقابل فحوصات الحماية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 3 دروس في المجموع.

ماذا ستتعلم في «التشخيص البسيط: الاستثناءات مقابل فحوصات الحماية»؟

طبّق فحوصات الحماية للمدخلات غير الصالحة المتوقعة، وارمِ الاستثناءات للحالات الاستثنائية، واستخدم try/catch لمعالجة الأخطاء بسلاسة. تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟

لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.

كم من الوقت يستغرق درس «التشخيص البسيط: الاستثناءات مقابل فحوصات الحماية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟

نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. if/else وswitch (التقليدية) والحلقات: for وwhile وdo وforeach
  2. break وcontinue؛ goto (تجنّبه)؛ النطاق؛ الاستثناءات مقابل فحوصات الحماية
  3. التشخيص البسيط: الاستثناءات مقابل فحوصات الحماية
← العودة إلى C# Academy