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
tryblokida 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:
finallyichidagi kod,tryyokicatchblokidareturnishlatilgan bo‘lsa ham, bajariladi.- Agar
finallyichida yangi istisno chiqarilsa, utryyokicatchbloklarida chiqarilgan istisnalarni o‘chiradi. finallybloki qoldirilishi mumkin, lekintrybloki yokicatch, yoki ikkalasi bilan bo‘lishi shart.