Avant PHP 8, si nous voulions prendre une exception, nous devions généralement le stocker dans une variable, puis vérifier cette variable pour obtenir les informations d'exception. De cette façon, les développeurs peuvent obtenir des informations détaillées sur les exceptions, telles que les codes d'erreur, les messages d'erreur, etc.
Voici la façon traditionnelle de prendre des exceptions avant PHP 8:
<?php
function
foo()
{
try
{
throw
new
Exception(
'Hello'
);
}
catch
(Exception
$e
) {
return
$e
->getMessage();
}
}
?>
Dans le code ci-dessus, l'exception est capturée par le bloc de capture et stockée dans une variable $ e , qui peut ensuite être obtenue via les détails de l'exception.
PHP 8 a introduit une nouvelle fonctionnalité de capture d'exception non capturée, c'est-à-dire lorsqu'une exception est capturée, elle ne peut plus être stockée dans une variable, ce qui signifie que nous n'avons plus à nous soucier de l'objet d'exception capturé. Si vous n'avez pas besoin d'utiliser les informations dans l'objet Exception, vous pouvez utiliser cette manière simplifiée pour assister à des exceptions.
Voici un exemple de capture d'exception non capturant dans PHP 8:
<?php
try
{
throw
new
Exception(
'hello'
);
}
catch
(Exception) {
// $e 变量已省略
}
?>
Dans cet exemple, l'exception est capturée avec succès mais n'est stockée dans aucune variable. Cette approche est très utile pour les situations où nous devons simplement gérer les exceptions sans nous soucier de leurs détails.
La caractéristique de capture d'exception non capturant de PHP 8 rend la manipulation des exceptions plus flexible. Lorsque vous n'avez pas besoin d'accéder à des informations dans des objets d'exception, vous pouvez utiliser des méthodes de capture simplifiées pour rendre le code plus concis et améliorer la lisibilité et la maintenabilité du code.