Sobes.tech
Junior

Java dasturlash tilida finally bloki nima uchun ishlatiladi?

sobes.tech AI

AIdan javob

Java'da finally bloki, try yoki catch bloklarida istisno chiqarilgan bo‘lsa yoki chiqarilmagan bo‘lsa ham, majburiy bajarilishi kerak bo‘lgan kodni bajarish uchun ishlatiladi.

finally ning asosiy maqsadlari:

  • Resurslarni bo‘shatish: Fayllar, tarmoq ulanishlari, ma'lumotlar bazalari va boshqa resurslarni try blokida yopish. Bu xatoliklar bo‘lsa ham, resurslar ochiq qolmasligini ta'minlaydi.
  • Tozalash: Transaktsiyalarni bekor qilish yoki mutexlarni ochish kabi yakuniy harakatlarni bajarish.
  • Majburiy harakatlarni bajarish: Operatsiya oxirida, uning natijasidan qat'iy nazar, bajarilishi kerak bo‘lgan kod.

Misol:

try {
    // Istisno chiqarishi mumkin bo‘lgan kod
    FileReader file = new FileReader("myfile.txt");
    // ... fayl bilan ishlash
} catch (FileNotFoundException e) {
    // Istisno bilan ishlash
    System.err.println("Fayl topilmadi: " + e.getMessage());
} finally {
    // Bu kod har doim bajariladi
    System.out.println("finally blokini bajarish.");
    // Bu yerda odatda resurslar yopiladi
    if (file != null) { // Faraz qilaylik, 'file' tashqarida e'lon qilingan
        try {
            file.close();
        } catch (IOException e) {
            System.err.println("Faylni yopishda xato: " + e.getMessage());
        }
    }
}

Muhim eslatmalar:

  • finally ichidagi kod, try yoki catch blokida return ishlatilgan bo‘lsa ham, bajariladi.
  • Agar finally ichida yangi istisno chiqarilsa, u try yoki catch bloklarida chiqarilgan istisnalarni o‘chiradi.
  • finally bloki qoldirilishi mumkin, lekin try bloki yoki catch, yoki ikkalasi bilan bo‘lishi shart.