Middle
Java-da istisna mexanizmi haqqında danışın.
sobes.tech Süni İntellekt
AI-dan cavab
Java-da istisna mexanizmi, proqramın icrası zamanı baş verən səhvlər və digər istisna vəziyyətləri idarə etmək üçün istifadə olunur.
İstisna mexanizminin əsas elementləri:
- İstisna (Exception): Proqramın normal icra axşını pozan hadisəni təmsil edən obyekt.
try,catch,finallyblokları: İstisnaları idarə etmək üçün istifadə olunur.try: İstisna baş verə biləcək kod bloku.catch:tryblokunda müəyyən bir növ istisna baş verərsə işləyən kod bloku.finally: Həmişə işləyən kod bloku, istisna baş verib-verməməsindən asılı olmayaraq. Resursların azad olunması üçün istifadə olunur.
- Açar söz
throw: Açıqlama ilə istisna yaratmaq və atmaq üçün istifadə olunur. - Açar söz
throws: Metodun imzasında istifadə olunur və metodun ata biləcəyi istisna tiplərini elan edir.
Java-da istisna hierarxiyası:
Throwable: Bütün istisna və xətalar üçün əsas sinif.Error: Çox ciddi problemləri təmsil edir və adətən proqramdan çıxmaq üçün istifadə olunur (məsələn,OutOfMemoryError).Exception: Proqram tərəfindən tutulub idarə oluna bilən istisnaları təmsil edir.RuntimeException(Unchecked Exceptions): Açıqlama və ya idarə etmə tələb etməyən istisnalar (məsələn,NullPointerException,ArrayIndexOutOfBoundsException).- Checked Exceptions:
try-catchbloku ilə idarə olunmalı və yathrowsilə elan olunmalı (məsələn,IOException,FileNotFoundException).
İstisna idarə etmə nümunəsi:
public class ExceptionExample {
public static void main(String[] args) {
try {
int result = divide(10, 0);
System.out.println("Nəticə: " + result);
} catch (ArithmeticException e) {
// ArithmeticException istisnasını idarə etmək
System.err.println("Xəta: sıfıra bölmə icazə verilmir.");
System.err.println("İstisna detalları: " + e.getMessage());
e.printStackTrace(); // çağrı yığınını göstərir
} finally {
// Bu blok həmişə işləyəcək
System.out.println("Finally bloku icra olundu.");
}
}
public static int divide(int a, int b) {
// b = 0 olarsa, ArithmeticException atə bilər
return a / b;
}
}
throws istifadə nümunəsi:
import java.io.FileReader;
import java.io.IOException;
public class ThrowsExample {
public static void readFile(String filename) throws IOException {
// IOException atə bilər
FileReader reader = new FileReader(filename);
// Fayl ilə əlavə işlər
}
public static void main(String[] args) {
try {
readFile("mövcud olmayan_fayl.txt");
} catch (IOException e) {
System.err.println("Fayl oxuma xətası: " + e.getMessage());
}
}
}