Ukaz finally
Blok finally se uporablja skupaj s konstrukcijama try in catch za obdelavo izjem. Koda znotraj finally se bo izvedla v vsakem primeru - tako pri uspešnem izvajanju try-bloka kot pri pojavu izjeme.
Sintaksa
try {
// Koda, ki lahko povzroči izjemo
} catch (Exception $e) {
// Obdelava izjeme
} finally {
// Koda, ki se bo izvedla v vsakem primeru
}
Primer
Primer z uspešnim izvajanjem kode:
<?php
try {
$res = 10 / 2;
echo "Rezultat: " . $res . "\n";
} catch (Exception $e) {
echo "Izjema: " . $e->getMessage() . "\n";
} finally {
echo "To se bo izvedlo vedno\n";
}
?>
Rezultat izvajanja kode:
Rezultat: 5
To se bo izvedlo vedno
Primer
Primer z obdelavo izjeme:
<?php
try {
$res = 10 / 0;
echo "Rezultat: " . $res . "\n";
} catch (Exception $e) {
echo "Izjema: " . $e->getMessage() . "\n";
} finally {
echo "To se bo izvedlo vedno\n";
}
?>
Rezultat izvajanja kode:
Izjema: Deljenje z nič
To se bo izvedlo vedno
Primer
Uporaba finally za sprostitev virov:
<?php
$file = fopen("example.txt", "r");
try {
// Delo z datoteko
if ($file) {
echo "Datoteka uspešno odprta\n";
}
} catch (Exception $e) {
echo "Izjema: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "Datoteka zaprta v finally bloku\n";
}
}
?>
Rezultat izvajanja kode:
Datoteka uspešno odprta
Datoteka zaprta v finally bloku