Sobes.tech
Junior

Java proqramlaşdırma dilində finally bloku nə üçün istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da finally bloku, try və ya catch bloklarında istisna atılıb-atılmamasından asılı olmayaraq, mütləq icra olunması lazım olan kodu icra etmək üçün istifadə olunur.

finally-nin əsas məqsədləri:

  • Resursların azad olunması: Faylları, şəbəkə bağlantılarını, verilənlər bazalarını və digər resursları try blokunda bağlamaq. Bu, səhvlər olsa belə, resursların açıq qalmasının qarşısını alır.
  • Təmizləmə: Əməliyyatların sonunda, məsələn, tranzaksiyaların ləğvi və ya mutexlərin açılması kimi, son hərəkətləri yerinə yetirmək.
  • Mütləq yerinə yetirilməsi lazım olan əməliyyatlar: Hər hansı bir nəticədən asılı olmayaraq, əməliyyatın sonunda yerinə yetirilməli olan kod.

Nümunə:

try {
    // İstisna ata bilən kod
    FileReader file = new FileReader("myfile.txt");
    // ... fayl ilə işləmək
} catch (FileNotFoundException e) {
    // İstisna ilə işləmə
    System.err.println("Fayl tapılmadı: " + e.getMessage());
} finally {
    // Bu kod həmişə icra olunacaq
    System.out.println("finally blokunun icrası.");
    // Burada adətən resurslar bağlanır
    if (file != null) { // Farz edək ki, 'file' dəyişəni xaricdə elan olunub
        try {
            file.close();
        } catch (IOException e) {
            System.err.println("Faylın bağlanmasında xəta: " + e.getMessage());
        }
    }
}

Əhəmiyyətli qeyd:

  • finally içindəki kod, try və ya catch blokunda return istifadə olunsa belə, icra olunur.
  • Əgər finally-də yeni istisna atılsa, bu, try və ya catch bloklarında atılmış istisnaları üstələyir.
  • finally bloku atıla bilər, lakin try ya catch ilə, ya da finally ilə müşayiət olunmalıdır (və ya ikisi).