Maison >développement back-end >tutoriel php >Comment puis-je gérer efficacement les avertissements des fonctions PHP comme « dns_get_record() » sans utiliser « try/catch » ?
Lorsque vous traitez des fonctions PHP comme dns_get_record qui lancent des avertissements en cas d'échec, les blocs try/catch ne sont pas une solution efficace. Cependant, il existe d'autres approches pour gérer les avertissements :
Vous pouvez temporairement définir un gestionnaire d'erreurs personnalisé à l'aide de set_error_handler() pour ignorer les avertissements. Après l'appel d'API, restaurez le gestionnaire précédent avec restaurer_error_handler().
set_error_handler(function() { /* ignore errors */ }); dns_get_record(); restore_error_handler();
En définissant un gestionnaire d'erreurs personnalisé et en utilisant la classe ErrorException, vous pouvez convertir les erreurs PHP. en exceptions :
set_error_handler(function($errno, $errstr, $errfile, $errline) { // exclude suppressed errors if (0 === error_reporting()) { return false; } throw new ErrorException($errstr, 0, $errno, $errfile, $errline); }); try { dns_get_record(); } catch (ErrorException $e) { // ... }
Pendant il est possible de supprimer les avertissements à l'aide de l'opérateur @, cela n'est généralement pas recommandé car cela peut masquer des problèmes potentiels. Vérifiez plutôt la valeur de retour de dns_get_record() pour déterminer si une erreur s'est produite.
N'oubliez pas qu'il est important de prendre en compte le contexte et les conséquences de l'approche que vous avez choisie lors du traitement des avertissements en PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!