Pour une gestion plus propre des sorties d'exceptions
Xinchen Hui, développeur du projet PHP, a commité hier l'introduction du mot clé "finally" dans le corps du langage.
Cette fonctionnalité, à mainte reprise sollicitée par la communauté, vient d'être officiellement intégrée au langage après un vote favorable ce lundi. Sa RFC (demande de commentaires) a reçu 25 oui (dont celui de Rasmus Lerdorf) contre 5 refus.

finally permet d'éviter au développeur d'écrire un code de nettoyage lorsqu'une exception non manipulable se produit, comme illustré dans le code suivant :
| Code : | Sélectionner tout | 
1 2 3 4 5 6 7 8 9  | 
$db = mysqli_connect(); 
try {
   call_some_function($db);
} catch (Exception $e) {
   mysqli_close($db); 
   throw $e;
}
mysqli_close($db); | 
| Code : | Sélectionner tout | 
1 2 3 4 5 6 7  | 
$db = mysqli_connect(); 
try {
   call_some_function($db); //La fonction peut produire des exceptions sur lequelles on ne peut intervenir anticiper
} finally {
   mysqli_close($db); 
} | 
| Code : | Sélectionner tout | 
1 2 3 4 5 6 7 8  | 
try {
    return 2;
} finally {
    echo "this will be called\n";
}
//this will never be called
echo "you can not see me"; | 
On peut envisager des scénarios plus sophistiqués, avec un cas imbriqué :
| Code : | Sélectionner tout | 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  | 
function foo ($a) {
   try {
      echo "1";
      try {
        echo "2";
        throw new Exception("ex");
      } catch (Exception $e) {
        echo "3";
      } finally {
        echo "4";
        throw new Exception("ex");
      }
   } catch (Exception $e) {
      echo "3";
   } finally {
      echo "2";
   }
   return 1;
}
var_dump(foo("para")); | 
Ce commit n'a pas engendré l'annonce (ou le lancement) d'une nouvelle version du langage. Les plus téméraires peuvent compiler la dernière branche du langage à partir de son code source.
Source : finally sur le wiki de PHP
Et vous ?
 Que pensez-vous de l'intégration de ce mot clé en PHP ?
 Comment faisiez-vous sans sa présence ?
Vous avez lu gratuitement 5 307 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
    Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
)						

 ) reprochaient souvent le manque du mot-clé finally.