CodeGym /Kurslar /JAVA 25 SELF /try-catch sintaksisi

try-catch sintaksisi

JAVA 25 SELF
Səviyyə, Dərs
Mövcuddur

1. try-catch nə üçün lazımdır?

Artıq bildiyiniz kimi, proqramlaşdırmada xətalar daim baş verir: sıfıra bölmə, yalnış daxil etmə, faylın olmaması və s. Əgər belə vəziyyətlər emal olunmasa, proqram xəta ilə (qəza ilə) dayanacaq.
try-catch konstruksiyası istisnanı “tutmağa” və xətanı səliqəli şəkildə emal edərək proqramın çökməsinin qarşısını almağa imkan verir.

try-catch konstruksiyasının sintaksisi

try 
{
    // İstisna ata biləcək kod
} 
catch (TipIsklyucheniya imyaPeremennoy) 
{
    // İstisnanı emal etmək üçün kod
}

İzah:

  • try — “bu kodu icra etməyə çalış”.
  • catch — “göstərilən tipdə istisna yaranarsa, onu burada emal et”.

Bu necə işləyir?

Əgər try blokunda istisna yaranarsa, həmin blokun icrası dərhal dayandırılır və idarəetmə ilk uyğun catch blokuna keçir. Əgər istisna yaranmasa — catch bloku ötürülür.

2. Nümunə: sıfıra bölmə

İstisna emalı olmadan

int a = 10;
int b = 0;
int result = a / b; // Burada proqram xəta ilə dayanacaq!
System.out.println("Nəticə: " + result); // Bura qədər çatmayacağıq

Nəticə:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at Main.main(Main.java:3)

try-catch ilə emal edərək

int a = 10;
int b = 0;

try 
{
    int result = a / b; // Burada istisna yarana bilər
    System.out.println("Nəticə: " + result);
} 
catch (ArithmeticException e) 
{
    System.out.println("Xəta: sıfıra bölmə mümkün deyil!");
}

System.out.println("Proqram işini davam etdirdi.");

Nəticə:

Xəta: sıfıra bölmə mümkün deyil!
Proqram işini davam etdirdi.

İzah:

  1. Java sıfıra bölməni görəndə dərhal istisna atır.
  2. try dayandırılır və idarəetmə catch blokuna keçir.
  3. Xəta emal edildikdən sonra proqram icranı davam etdirir.

3. catch bloku necə işləyir

catch sözündən sonra mötərizədə istisnanın tipi (məsələn, ArithmeticException) və dəyişənin adı (adətən e) göstərilir.

catch blokunun içində xəta haqqında detalları öyrənmək olar:

  • e.getMessage() — xətanın qısa təsviri.
  • e.printStackTrace() — ətraflı məlumat (sazlama üçün).

Nümunə:

try 
{
    int[] arr = new int[2];
    int x = arr[10]; // Xəta: indeks mövcud deyil
} 
catch (ArrayIndexOutOfBoundsException e) 
{
    System.out.println("Xəta: " + e.getMessage()); // Xətanın mesajını göstəririk
    e.printStackTrace();                             // Xəta barədə bütün məlumatı konsola çap edirik
}

4. İstisna zamanı icra axını

Əgər try blokunda xəta yoxdursa — catch bloku ötürülür.

Əgər try blokunda xəta yarandısa — blokun icrası xəta baş verən yerdə dayandırılır və idarəetmə dərhal ilk uyğun catch blokuna keçir. try daxilində xətadan sonrakı heç nə icra olunmayacaq!

İllüstrasiya:

try 
{
    System.out.println("1. try-nin başlanğıcı");
    int a = 10 / 0;                        // Xəta!
    System.out.println("2. Bölmədən sonra"); // İcra olunmayacaq
} 
catch (ArithmeticException e) 
{
    System.out.println("3. catch blokunda");
}
System.out.println("4. try-catch-dən sonra");

Nəticə:

1. try-nin başlanğıcı
3. catch blokunda
4. try-catch-dən sonra

5. try-catch istifadə edilərkən tipik səhvlər

Səhv № 1: Həddindən artıq geniş catch.
Əgər catch (Exception e) istifadə etsəniz, düzgün emal etməyi bacarmadığınız çoxlu gözlənilməz xətaları tuta bilərsiniz.
Həll: yalnız bu yerdə həqiqətən gözlənilən istisnaları tutun (məsələn, IOException, SQLException).

Səhv № 2: Boş catch.
catch (Exception e) {} yazmaq — problemi gizlətmək deməkdir. Proqram başqa yerdə çökə bilər və ya qəribə davrana bilər.
Həll: heç olmasa xətanı jurnallaşdırın (e.printStackTrace() və ya logger).

Səhv № 3: try-catch-in hər problemi həll edəcəyinə inanmaq.
Əgər problem proqramın məntiqindədirsə (məsələn, sıfıra bölmə, yalnış alqoritm) — heç bir try-catch kömək etməz.
Həll: try-catch-i yalnız həqiqətən gözlənilən hallar üçün istifadə edin, səhvləri gizlətmək üçün yox.

1
Tapşırıq
JAVA 25 SELF, səviyyə, dərs
Bağlanıb
Etibarlı tədqiqatçı robot 🤖
Etibarlı tədqiqatçı robot 🤖
1
Tapşırıq
JAVA 25 SELF, səviyyə, dərs
Bağlanıb
Qəhrəmanın sırt çantasına səhv sorğu 🛡️
Qəhrəmanın sırt çantasına səhv sorğu 🛡️
1
Tapşırıq
JAVA 25 SELF, səviyyə, dərs
Bağlanıb
Hesablama sistemində problemin diaqnostikası 📈
Hesablama sistemində problemin diaqnostikası 📈
1
Tapşırıq
JAVA 25 SELF, səviyyə, dərs
Bağlanıb
Kritik missiya idarəetmə sistemi 🚀
Kritik missiya idarəetmə sistemi 🚀
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION