De finally Opdracht
Het blok finally wordt gebruikt samen met de constructies try en catch voor de afhandeling van uitzonderingen. De code binnen finally wordt in elk geval uitgevoerd - zowel bij succesvolle uitvoering van het try-blok als bij het optreden van een uitzondering.
Syntaxis
try {
// Code die een uitzondering kan veroorzaken
} catch (Exception $e) {
// Afhandeling van de uitzondering
} finally {
// Code die in elk geval wordt uitgevoerd
}
Voorbeeld
Voorbeeld met succesvolle uitvoering van code:
<?php
try {
$res = 10 / 2;
echo "Resultaat: " . $res . "\n";
} catch (Exception $e) {
echo "Uitzondering: " . $e->getMessage() . "\n";
} finally {
echo "Dit wordt altijd uitgevoerd\n";
}
?>
Resultaat van code-uitvoering:
Resultaat: 5
Dit wordt altijd uitgevoerd
Voorbeeld
Voorbeeld met afhandeling van een uitzondering:
<?php
try {
$res = 10 / 0;
echo "Resultaat: " . $res . "\n";
} catch (Exception $e) {
echo "Uitzondering: " . $e->getMessage() . "\n";
} finally {
echo "Dit wordt altijd uitgevoerd\n";
}
?>
Resultaat van code-uitvoering:
Uitzondering: Divisie door nul
Dit wordt altijd uitgevoerd
Voorbeeld
Finally gebruiken voor het vrijgeven van bronnen:
<?php
$file = fopen("example.txt", "r");
try {
// Werken met het bestand
if ($file) {
echo "Bestand succesvol geopend\n";
}
} catch (Exception $e) {
echo "Uitzondering: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "Bestand gesloten in finally blok\n";
}
}
?>
Resultaat van code-uitvoering:
Bestand succesvol geopend
Bestand gesloten in finally blok