Junior
Kam paredzēts finally bloks Java programmēšanas valodā?
sobes.tech AI
Atbilde no AI
Java finally bloks tiek try, tiek catch blokuose naudojamas norint vykdyti kodą, kuris būtinai turi būti įvykdytas, nepriklausomai nuo to, ar išmetama išimtis ar ne.
Pagrindinės finally paskirtys:
- Ištekliai: 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.
- Privalomi veiksmai: 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ų).