Komanda finally
Blok finally se koristi zajedno sa konstrukcijama try i catch za obradu izuzetaka. Kod unutar finally će se izvršiti u svakom slučaju - kako pri uspešnom izvršenju try-bloka, tako i pri pojavi izuzetka.
Sintaksa
try {
// Kod koji može da izazove izuzetak
} catch (Exception $e) {
// Obrada izuzetka
} finally {
// Kod koji će se izvršiti u svakom slučaju
}
Primer
Primer sa uspešnim izvršenjem koda:
<?php
try {
$res = 10 / 2;
echo "Rezultat: " . $res . "\n";
} catch (Exception $e) {
echo "Izuzetak: " . $e->getMessage() . "\n";
} finally {
echo "Ovo će se uvek izvršiti\n";
}
?>
Rezultat izvršenja koda:
Rezultat: 5
Ovo će se uvek izvršiti
Primer
Primer sa obradom izuzetka:
<?php
try {
$res = 10 / 0;
echo "Rezultat: " . $res . "\n";
} catch (Exception $e) {
echo "Izuzetak: " . $e->getMessage() . "\n";
} finally {
echo "Ovo će se uvek izvršiti\n";
}
?>
Rezultat izvršenja koda:
Izuzetak: Deljenje sa nulom
Ovo će se uvek izvršiti
Primer
Korišćenje finally za oslobađanje resursa:
<?php
$file = fopen("primer.txt", "r");
try {
// Rad sa fajlom
if ($file) {
echo "Fajl je uspešno otvoren\n";
}
} catch (Exception $e) {
echo "Izuzetak: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "Fajl je zatvoren u finally bloku\n";
}
}
?>
Rezultat izvršenja koda:
Fajl je uspešno otvoren
Fajl je zatvoren u finally bloku