La commande finally
Le bloc finally est utilisé avec les constructions try et catch pour la gestion des exceptions. Le code à l'intérieur de finally s'exécutera dans tous les cas - que le bloc try s'exécute avec succès ou qu'une exception se produise.
Syntaxe
try {
// Code susceptible de lever une exception
} catch (Exception $e) {
// Gestion de l'exception
} finally {
// Code qui s'exécutera dans tous les cas
}
Exemple
Exemple avec une exécution réussie du code :
<?php
try {
$res = 10 / 2;
echo "Result: " . $res . "\n";
} catch (Exception $e) {
echo "Exception: " . $e->getMessage() . "\n";
} finally {
echo "This will always execute\n";
}
?>
Résultat de l'exécution du code :
Result: 5
This will always execute
Exemple
Exemple avec gestion d'une exception :
<?php
try {
$res = 10 / 0;
echo "Result: " . $res . "\n";
} catch (Exception $e) {
echo "Exception: " . $e->getMessage() . "\n";
} finally {
echo "This will always execute\n";
}
?>
Résultat de l'exécution du code :
Exception: Division by zero
This will always execute
Exemple
Utilisation de finally pour libérer des ressources :
<?php
$file = fopen("example.txt", "r");
try {
// Travail avec le fichier
if ($file) {
echo "File opened successfully\n";
}
} catch (Exception $e) {
echo "Exception: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "File closed in finally block\n";
}
}
?>
Résultat de l'exécution du code :
File opened successfully
File closed in finally block