ما هو الاستثناء؟
خطأ يحدث أثناء التنفيذ (قسمة على صفر، ملف غير موجود) قد يُوقف البرنامج إن لم يُعالَج.
try / catch
try {
int result = 10 / 0; // خطأ
} catch (ArithmeticException e) {
System.out.println("لا يمكن القسمة على صفر");
}
finally
ينفّذ دائمًا (نجح أو فشل) — لتحرير الموارد:
try {
// كود
} catch (Exception e) {
System.out.println("خطأ: " + e.getMessage());
} finally {
System.out.println("تنظيف");
}
عدّة catch
try {
// ...
} catch (ArithmeticException e) {
// خطأ حسابي
} catch (NullPointerException e) {
// مرجع فارغ
} catch (Exception e) {
// أي خطأ آخر (الأعمّ أخيرًا)
}
رمي استثناء (throw)
void setAge(int age) {
if (age < 0) {
throw new IllegalArgumentException("العمر سالب");
}
}
checked مقابل unchecked
- Checked (مثل
IOException): يجب التعامل معها أو الإعلانthrows. - Unchecked (مثل
NullPointerException): أخطاء برمجية وقت التشغيل.
💡 لا تبتلع الاستثناء بـ catch فارغ — سجّله أو عالجه بشكل صحيح.
🎯 التالي: التعامل مع الملفات.