استثناها (Exceptions)

مدیریت خطاها در جاوا: try/catch/finally و throw.

Exception چیست؟

رویداد غیرمنتظره در زمان اجرا که جریان عادی را قطع می‌کند — تقسیم بر صفر، دسترسی به ایندکس نامعتبر و...

try...catch — مهار خطا

try {
    int result = 10 / 0;   ← خطا اینجا رخ می‌دهد
    System.out.println(result);
} catch (ArithmeticException e) {
    System.out.println("خطای ریاضی: " + e.getMessage());
}
// برنامه ادامه می‌دهد — کرش نمی‌کند!

finally — همیشه اجرا می‌شود

try {
    // کد پرخطر
} catch (Exception e) {
    // مدیریت خطا
} finally {
    // پاکسازی — همیشه اجرا می‌شود (خطا یا نه)
    System.out.println("پاکسازی انجام شد");
}

انواع Exception های رایج

Exceptionعلت
ArithmeticExceptionتقسیم بر صفر
ArrayIndexOutOfBoundsExceptionایندکس خارج از آرایه
NullPointerExceptionدسترسی به شیء null
NumberFormatExceptionتبدیل رشته نامعتبر به عدد

چند catch

try {
    int[] arr = new int[3];
    arr[5] = 10;   ← خطای ایندکس
} catch (ArrayIndexOutOfBoundsException e) {
    System.out.println("ایندکس نامعتبر!");
} catch (Exception e) {
    System.out.println("خطای عمومی: " + e.getMessage());
}

throw — پرتاب دستی خطا

static void setAge(int age) {
    if (age < 0) {
        throw new IllegalArgumentException("سن نمی‌تواند منفی باشد: " + age);
    }
    System.out.println("سن ثبت شد: " + age);
}

الگوی بررسی-و-مهار

static int divide(int a, int b) {
    if (b == 0) {
        throw new ArithmeticException("تقسیم بر صفر!");
    }
    return a / b;
}

// استفاده
try {
    System.out.println(divide(10, 2));   ← 5
    System.out.println(divide(10, 0));   ← خطا!
} catch (ArithmeticException e) {
    System.out.println("خطا: " + e.getMessage());
}
استثناها برای شرایط استثنایی هستند — برای جریان عادی از if/else استفاده کنید!

این مبحث بخشی از دوره آموزش کامل جاوا است.

ابزارهای مرتبط