Kommandoen finally
Blokken finally bruges sammen med konstruktionerne try og catch til håndtering af undtagelser. Koden inde i finally vil blive udført under alle omstændigheder - både ved succesfuld udførelse af try-blokken og ved opståen af en undtagelse.
Syntaks
try {
// Kode, der kan forårsage en undtagelse
} catch (Exception $e) {
// Håndtering af undtagelse
} finally {
// Kode, der vil blive udført under alle omstændigheder
}
Eksempel
Eksempel med succesfuld udførelse af kode:
<?php
try {
$res = 10 / 2;
echo "Resultat: " . $res . "\n";
} catch (Exception $e) {
echo "Undtagelse: " . $e->getMessage() . "\n";
} finally {
echo "Dette vil altid udføres\n";
}
?>
Resultat af kodeudførelse:
Resultat: 5
Dette vil altid udføres
Eksempel
Eksempel med håndtering af undtagelse:
<?php
try {
$res = 10 / 0;
echo "Resultat: " . $res . "\n";
} catch (Exception $e) {
echo "Undtagelse: " . $e->getMessage() . "\n";
} finally {
echo "Dette vil altid udføres\n";
}
?>
Resultat af kodeudførelse:
Undtagelse: Division med nul
Dette vil altid udføres
Eksempel
Brug af finally til frigivelse af ressourcer:
<?php
$file = fopen("example.txt", "r");
try {
// Arbejde med filen
if ($file) {
echo "Fil åbnet succesfuldt\n";
}
} catch (Exception $e) {
echo "Undtagelse: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "Fil lukket i finally blokken\n";
}
}
?>
Resultat af kodeudførelse:
Fil åbnet succesfuldt
Fil lukket i finally blokken