الانتقال إلى المحتوى الرئيسي
الوحدة 5 · الدرس 1 من 29/14 في الدورة~12 min
دروس الوحدة (1/2)

كتل محاولة الالتقاط

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

البنية try-catch

للتعامل مع استثناء محتمل، نقوم بإحاطة التعليمات البرمجية الخطرة في كتلة try. في حالة حدوث خطأ داخل الكتلة try، يتوقف JVM عن تنفيذها ويبحث عن كتلة catch المطابقة لمعالجة الاستثناء.

Java
try {
    int result = 10 / 0; // Generates ArithmeticException
    System.out.println("This will not be printed");
} catch (ArithmeticException e) {
    System.out.println("Arithmetic error occurred: " + e.getMessage());
}

الكتلة finally

تعتبر الكتلة finally اختيارية ويتم تنفيذها دائمًا، بغض النظر عما إذا تم طرح استثناء أم لا. إنه مثالي لإطلاق الموارد أو إجراء عمليات التنظيف.

Java
try {
    System.out.println("Executing logic");
} catch (Exception e) {
    System.out.println("Error");
} finally {
    System.out.println("This block is always executed");
}

استثناءات الطرح: throw

يمكننا طرح استثناء عن عمد باستخدام الكلمة الأساسية throw متبوعة بمثيل جديد لفئة الاستثناء.

Java
public static void checkScore(int score) {
    if (score < 0 || score > 100) {
        throw new IllegalArgumentException("Score must be between 0 and 100");
    }
}

جربه بنفسك

تمرين#java.m5.l1.e1
المحاولات: 0جارٍ التحميل…

أكمل الكود عن طريق إدراج كتلة محاولة الالتقاط للتعامل مع استثناء حسابي محتمل ناتج عن القسمة a/b. في حالة وجود خطأ، قم بطباعة "خطأ: القسمة على صفر".

جارٍ تحميل المحرر…
إظهار التلميح

أدخل عملية القسمة داخل كتلة "محاولة" ثم التقط "ArithmeticException" لطباعة الرسالة المطلوبة.

الحل متاح بعد 3 من المحاولات

تمرين#java.m5.l1.e2
المحاولات: 0جارٍ التحميل…

أكمل الكود لتنفيذ كتلة حاول الالتقاط أخيرًا. في كتلة المحاولة، حاول تحويل السلسلة النصية إلى عدد صحيح باستخدام Integer.parseInt. في كتلة الالتقاط، اعترض NumberFormatException واطبع "رقم غير صالح". في الكتلة الأخيرة، قم بطباعة "أخيرًا".

جارٍ تحميل المحرر…
إظهار التلميح

اكتب بنية الكتلة `حاول { ... } Catch (NumberFormatException e) { ... } أخيرًا { ... }`.

الحل متاح بعد 3 من المحاولات

تمرين#java.m5.l1.e3
المحاولات: 0جارٍ التحميل…

أكمل طريقة checkAge عن طريق طرح IllegalArgumentException مع الرسالة "Underage" إذا كان العمر المحدد أقل من 18 عامًا.

جارٍ تحميل المحرر…
إظهار التلميح

استخدم `if (age < 18)` و`throw new` لإنشاء مثيل للاستثناء وطرحه.

الحل متاح بعد 3 من المحاولات