دروس الوحدة (1/2)
كتل محاولة الالتقاط
في Java، تتم معالجة أخطاء وقت التشغيل باستخدام الاستثناءات. تتيح لنا معالجة الاستثناءات اعتراض الحالات الشاذة ومنع البرنامج من التعطل.
البنية try-catch
للتعامل مع استثناء محتمل، نقوم بإحاطة التعليمات البرمجية الخطرة في كتلة try. في حالة حدوث خطأ داخل الكتلة try، يتوقف JVM عن تنفيذها ويبحث عن كتلة catch المطابقة لمعالجة الاستثناء.
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 اختيارية ويتم تنفيذها دائمًا، بغض النظر عما إذا تم طرح استثناء أم لا. إنه مثالي لإطلاق الموارد أو إجراء عمليات التنظيف.
try {
System.out.println("Executing logic");
} catch (Exception e) {
System.out.println("Error");
} finally {
System.out.println("This block is always executed");
}استثناءات الطرح: throw
يمكننا طرح استثناء عن عمد باستخدام الكلمة الأساسية throw متبوعة بمثيل جديد لفئة الاستثناء.
public static void checkScore(int score) {
if (score < 0 || score > 100) {
throw new IllegalArgumentException("Score must be between 0 and 100");
}
}جربه بنفسك
أكمل الكود عن طريق إدراج كتلة محاولة الالتقاط للتعامل مع استثناء حسابي محتمل ناتج عن القسمة a/b. في حالة وجود خطأ، قم بطباعة "خطأ: القسمة على صفر".
إظهار التلميح
أدخل عملية القسمة داخل كتلة "محاولة" ثم التقط "ArithmeticException" لطباعة الرسالة المطلوبة.
الحل متاح بعد 3 من المحاولات
أكمل الكود لتنفيذ كتلة حاول الالتقاط أخيرًا. في كتلة المحاولة، حاول تحويل السلسلة النصية إلى عدد صحيح باستخدام Integer.parseInt. في كتلة الالتقاط، اعترض NumberFormatException واطبع "رقم غير صالح". في الكتلة الأخيرة، قم بطباعة "أخيرًا".
إظهار التلميح
اكتب بنية الكتلة `حاول { ... } Catch (NumberFormatException e) { ... } أخيرًا { ... }`.
الحل متاح بعد 3 من المحاولات
أكمل طريقة checkAge عن طريق طرح IllegalArgumentException مع الرسالة "Underage" إذا كان العمر المحدد أقل من 18 عامًا.
إظهار التلميح
استخدم `if (age < 18)` و`throw new` لإنشاء مثيل للاستثناء وطرحه.
الحل متاح بعد 3 من المحاولات