0Pricing
Java Academy · درس

إطلاق الاستثناءات والاستثناءات المخصّصة

تعلّم إطلاق الاستثناءات صراحةً وتعريف فئات استثناءات مخصّصة.

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

مقدمة

قد تحتاجون أحيانًا إلى الإشارة إلى وقوع خطأ بأنفسكم. تتيح لكم Java إلقاء الاستثناءات صراحةً، بل وإنشاء أنواع مخصّصة منها.

الكلمة المفتاحية throw

تنشئ التعليمة throw استثناءً وترسله. استخدموها داخل الدوال للإشارة إلى حدوث خطأ ما.

الشفرة: إلقاء استثناء مضمّن

نستخدم هنا throw لإلقاء IllegalArgumentException عندما تكون قيمة age صغيرةً جدًا.

public class Main {
  static void checkAge(int age) {
    if (age < 18) {
      throw new IllegalArgumentException("Must be 18 or older");
    }
    System.out.println("Access granted");
  }
  public static void main(String[] args) {
    try {
      checkAge(15);
    } catch (IllegalArgumentException e) {
      System.out.println("Caught: " + e.getMessage());
    }
  }
}

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

يمكنكم إنشاء استثناءات مخصّصة خاصة بكم. بالنسبة إلى الاستثناءات المفحوصة، اجعلوا الفئة ترث من Exception. وبالنسبة إلى الاستثناءات غير المفحوصة، اجعلوها ترث من RuntimeException.

الشفرة: استثناء مخصّص

يوضّح هذا الرمز استثناءً مفحوصًا مخصّصًا. ويجب على الدوال التصريح به باستخدام throws.

public class Main {
  // Custom checked exception
  static class InvalidAgeException extends Exception {
    InvalidAgeException(String msg) { super(msg); }
  }
  static void validate(int age) throws InvalidAgeException {
    if (age < 18) throw new InvalidAgeException("Too young!");
  }
  public static void main(String[] args) {
    try {
      validate(15);
    } catch (InvalidAgeException e) {
      System.out.println("Caught custom: " + e.getMessage());
    }
  }
}

الشفرة: استثناء مخصّص لوقت التشغيل

ترث استثناءات وقت التشغيل المخصّصة من RuntimeException. ولا تحتاج إلى التصريح بها.

public class Main {
  // Custom unchecked exception
  static class FatalError extends RuntimeException {
    FatalError(String msg) { super(msg); }
  }
  public static void main(String[] args) {
    try {
      throw new FatalError("Something bad happened");
    } catch (FatalError e) {
      System.out.println("Caught runtime: " + e.getMessage());
    }
  }
}

التحقق من الاستثناءات المخصّصة

تحقق سريع: كيف تعرّفون استثناءً مفحوصًا مخصّصًا؟

خلاصة

خلاصة: استخدموا throw للإشارة إلى الأخطاء. ارثوا من Exception للاستثناءات المفحوصة أو من RuntimeException للاستثناءات المخصّصة غير المفحوصة.

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

هل درس «إطلاق الاستثناءات والاستثناءات المخصّصة» مجاني؟

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

ماذا ستتعلم في «إطلاق الاستثناءات والاستثناءات المخصّصة»؟

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

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

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

كم من الوقت يستغرق درس «إطلاق الاستثناءات والاستثناءات المخصّصة»؟

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

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

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

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

  1. إطلاق الاستثناءات والاستثناءات المخصّصة
  2. try-with-resources ‏(AutoCloseable)
  3. البرمجة الدفاعية
← العودة إلى Java Academy