Comanda finally
Blocul finally este utilizat împreună cu construcțiile try și catch pentru gestionarea excepțiilor. Codul din interiorul lui finally se va executa în orice caz - atât la executarea cu succes a blocului try, cât și la apariția unei excepții.
Sintaxă
try {
// Cod care poate provoca o excepție
} catch (Exception $e) {
// Gestionarea excepției
} finally {
// Cod care se va executa în orice caz
}
Exemplu
Exemplu cu executare cu succes a codului:
<?php
try {
$res = 10 / 2;
echo "Rezultat: " . $res . "\n";
} catch (Exception $e) {
echo "Excepție: " . $e->getMessage() . "\n";
} finally {
echo "Acesta se va executa întotdeauna\n";
}
?>
Rezultatul executării codului:
Rezultat: 5
Acesta se va executa întotdeauna
Exemplu
Exemplu cu gestionarea unei excepții:
<?php
try {
$res = 10 / 0;
echo "Rezultat: " . $res . "\n";
} catch (Exception $e) {
echo "Excepție: " . $e->getMessage() . "\n";
} finally {
echo "Acesta se va executa întotdeauna\n";
}
?>
Rezultatul executării codului:
Excepție: Împărțire la zero
Acesta se va executa întotdeauna
Exemplu
Utilizarea lui finally pentru eliberarea resurselor:
<?php
$file = fopen("exemplu.txt", "r");
try {
// Lucrul cu fișierul
if ($file) {
echo "Fișier deschis cu succes\n";
}
} catch (Exception $e) {
echo "Excepție: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "Fișier închis în blocul finally\n";
}
}
?>
Rezultatul executării codului:
Fișier deschis cu succes
Fișier închis în blocul finally