Käsk finally
Plokki finally kasutatakse koos konstruktsioonidega try ja catch erindite töötlemiseks. Kood finally plokis käivitatakse igal juhul - nii try-ploki edukal täitmisel kui ka erindi tekkimisel.
Süntaks
try {
// Kood, mis võib põhjustada erindi
} catch (Exception $e) {
// Erindi töötlemine
} finally {
// Kood, mis käivitatakse igal juhul
}
Näide
Näide koodi edukal täitmisel:
<?php
try {
$res = 10 / 2;
echo "Tulemus: " . $res . "\n";
} catch (Exception $e) {
echo "Erind: " . $e->getMessage() . "\n";
} finally {
echo "See käivitatakse alati\n";
}
?>
Koodi täitmise tulemus:
Tulemus: 5
See käivitatakse alati
Näide
Näide erindi töötlemisega:
<?php
try {
$res = 10 / 0;
echo "Tulemus: " . $res . "\n";
} catch (Exception $e) {
echo "Erind: " . $e->getMessage() . "\n";
} finally {
echo "See käivitatakse alati\n";
}
?>
Koodi täitmise tulemus:
Erind: Jagamine nulliga
See käivitatakse alati
Näide
Finally kasutamine ressursside vabastamiseks:
<?php
$file = fopen("example.txt", "r");
try {
// Töö failiga
if ($file) {
echo "Fail avati edukalt\n";
}
} catch (Exception $e) {
echo "Erind: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "Fail suletud finally plokis\n";
}
}
?>
Koodi täitmise tulemus:
Fail avati edukalt
Fail suletud finally plokis