إطلاق الاستثناءات
جزء من قسم 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
التحدي
سهلقم بإنشاء دالة (method) تسمى validateAge تأخذ وسيطين (arguments):
- عدد صحيح (
age) للتحقق من صحته - قيمة منطقية (
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());
}
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم