Příkaz finally
Blok finally se používá společně s konstrukcemi try a catch pro zpracování výjimek. Kód uvnitř finally se vykoná v každém případě - jak při úspěšném provedení try-bloku, tak při vzniku výjimky.
Syntaxe
try {
// Kód, který může vyvolat výjimku
} catch (Exception $e) {
// Zpracování výjimky
} finally {
// Kód, který se vykoná v každém případě
}
Příklad
Příklad s úspěšným provedením kódu:
<?php
try {
$res = 10 / 2;
echo "Výsledek: " . $res . "\n";
} catch (Exception $e) {
echo "Výjimka: " . $e->getMessage() . "\n";
} finally {
echo "Toto se vždy provede\n";
}
?>
Výsledek provedení kódu:
Výsledek: 5
Toto se vždy provede
Příklad
Příklad se zpracováním výjimky:
<?php
try {
$res = 10 / 0;
echo "Výsledek: " . $res . "\n";
} catch (Exception $e) {
echo "Výjimka: " . $e->getMessage() . "\n";
} finally {
echo "Toto se vždy provede\n";
}
?>
Výsledek provedení kódu:
Výjimka: Division by zero
Toto se vždy provede
Příklad
Použití finally pro uvolnění prostředků:
<?php
$file = fopen("example.txt", "r");
try {
// Práce se souborem
if ($file) {
echo "Soubor úspěšně otevřen\n";
}
} catch (Exception $e) {
echo "Výjimka: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "Soubor uzavřen v bloku finally\n";
}
}
?>
Výsledek provedení kódu:
Soubor úspěšně otevřen
Soubor uzavřen v bloku finally