Junior
Kokia yra finally bloko paskirtis Java programavimo kalboje?
sobes.tech AI
Atsakymas iš AI
„Galia“ blokas Java naudojamas vykdyti kodą, kuris būtinai turi būti įvykdytas, nepriklausomai nuo to, ar blokas try ar catch išmetė išimtį, ar ne.
Pagrindinės finally paskirtys:
- Išteklių atlaisvinimas: Failų, tinklo ryšių, duomenų bazių ir kitų išteklių uždarymas, kurie buvo atidaryti
trybloke. Užtikrina, kad ištekliai liktų uždaryti net ir įvykus klaidoms. - Valymas: Baigiamųjų veiksmų atlikimas, tokių kaip sandorių atšaukimas ar užrakinimų atlaisvinimas.
- Privalomų veiksmų vykdymas: Bet koks kodas, kuris turi būti įvykdytas pabaigoje, nepriklausomai nuo operacijos rezultato.
Pavyzdys:
try {
// Kodas, galintis išmesti išimtį
FileReader file = new FileReader("myfile.txt");
// ... darbai su failu
} catch (FileNotFoundException e) {
// Išimties apdorojimas
System.err.println("Failas nerastas: " + e.getMessage());
} finally {
// Šis kodas visada įvykdys
System.out.println("Vykdomas `finally` blokas.");
// Čia dažnai uždaromi ištekliai
if (file != null) { // Tarkime, kad 'file' yra deklaruotas už `try-catch`
try {
file.close();
} catch (IOException e) {
System.err.println("Klaida uždarant failą: " + e.getMessage());
}
}
}
Svarbu prisiminti:
- Kodas
finallyįvykdomas net jeireturnoperatorius buvo naudotastryarcatchbloke. - Jei
finallybloke išmetama nauja išimtis, ji užgožia bet kokią išimtį, išmestątryarcatchblokuose. finallyblokas gali būti praleistas, tačiautryturi būti lydimas arbacatch, arbafinally(arba abiejų).