Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

إطلاق الاستثناءات

جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 42 من 59.

تسمح لك الكلمة المفتاحية throw في Java برمي استثناء بشكل صريح. إليك الهيكل الأساسي:

throw new ExceptionType("Error message");

المكونات هي:

  • throw: كلمة مفتاحية لرمي استثناء
  • new ExceptionType: ينشئ استثناءً جديدًا (مثل IllegalArgumentException)
  • "Error message": يصف الخطأ الذي حدث

دعونا نراها قيد التنفيذ:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

بعد تنفيذ الكود أعلاه، يقوم البرنامج بطرح:

IllegalArgumentException: Age cannot be negative

challenge icon

التحدي

سهل

قم بإنشاء دالة (method) تسمى validateAge تأخذ وسيطين (arguments):

  1. عدد صحيح (age) للتحقق من صحته
  2. قيمة منطقية (strict) تحدد قواعد التحقق

يجب أن تقوم الدالة برمي استثناءات (exceptions) بناءً على هذه القواعد:

  • إذا كان العمر سالباً: قم برمي IllegalArgumentException مع الرسالة "Age cannot be negative"
  • إذا كان العمر أكبر من 150: قم برمي IllegalArgumentException مع الرسالة "Age cannot be greater than 150"
  • إذا كانت قيمة strict هي true والعمر هو 0: قم برمي IllegalArgumentException مع الرسالة "Age cannot be zero in strict mode"
  • إذا لم يتم رمي أي استثناء: قم بإرجاع العمر كسلسلة نصية (string)

ورقة مرجعية

تسمح لك الكلمة المفتاحية throw برمي استثناء بشكل صريح:

throw new ExceptionType("Error message");

المكونات:

  • throw: الكلمة المفتاحية لرمي استثناء
  • new ExceptionType: تنشئ استثناءً جديداً (مثل IllegalArgumentException)
  • "Error message": تصف الخطأ الذي حدث

مثال:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

جرّب بنفسك

import java.util.Scanner;

public class Main {
    public static String validateAge(int age, boolean strict) {
        // اكتب كودك هنا
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int age = Integer.parseInt(scanner.nextLine());
        boolean strict = Boolean.parseBoolean(scanner.nextLine());
        
        try {
            System.out.println(validateAge(age, strict));
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow