Kommandoen finally
Blokken finally brukes sammen med konstruksjonene try og catch for å håndtere unntak. Koden inni finally vil kjøre uansett - både ved vellykket utførelse av try-blokken og ved oppståelse av et unntak.
Syntaks
try {
// Kode som kan forårsake et unntak
} catch (Exception $e) {
// Håndtering av unntak
} finally {
// Kode som vil utføres uansett
}
Eksempel
Eksempel med vellykket kjøring av kode:
<?php
try {
$res = 10 / 2;
echo "Resultat: " . $res . "\n";
} catch (Exception $e) {
echo "Unntak: " . $e->getMessage() . "\n";
} finally {
echo "Dette vil alltid kjøre\n";
}
?>
Resultat av kjøring:
Resultat: 5
Dette vil alltid kjøre
Eksempel
Eksempel med håndtering av unntak:
<?php
try {
$res = 10 / 0;
echo "Resultat: " . $res . "\n";
} catch (Exception $e) {
echo "Unntak: " . $e->getMessage() . "\n";
} finally {
echo "Dette vil alltid kjøre\n";
}
?>
Resultat av kjøring:
Unntak: Divisjon med null
Dette vil alltid kjøre
Eksempel
Bruke finally for å frigjøre ressurser:
<?php
$file = fopen("example.txt", "r");
try {
// Arbeid med filen
if ($file) {
echo "Fil åpnet vellykket\n";
}
} catch (Exception $e) {
echo "Unntak: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "Fil lukket i finally-blokken\n";
}
}
?>
Resultat av kjøring:
Fil åpnet vellykket
Fil lukket i finally-blokken