Maison >développement back-end >tutoriel php >Gestion des erreurs dans les fonctions PHP

Gestion des erreurs dans les fonctions PHP

PHPz
PHPzoriginal
2024-04-13 15:09:02745parcourir

Les étapes pour implémenter la gestion des erreurs en PHP sont les suivantes : utilisez set_error_handler() pour connecter un gestionnaire d'erreurs à la fonction ; définissez le gestionnaire d'erreurs et spécifiez le type d'erreur à capturer ; déclenchez le message d'erreur via trigger_error(); traiter les erreurs dans le gestionnaire d'erreurs, telles que l'impression des informations sur les erreurs ; vous pouvez personnaliser le type d'erreur et spécifier les erreurs personnalisées à capturer ; utilisez restaurer_error_handler() pour restaurer le comportement de gestion des erreurs par défaut.

PHP 函数的错误处理

Gestion des erreurs dans les fonctions PHP : un guide pratique

En PHP, la gestion des erreurs est cruciale pour garantir que le programme fonctionne de manière stable et fiable. En connectant un gestionnaire d'erreurs à une fonction, nous pouvons détecter et gérer toutes les erreurs pouvant survenir lors des appels de fonction.

Syntaxe

set_error_handler(callable $error_handler, int $error_types = E_ALL | E_STRICT);
  • $error_handler : Un objet appelable utilisé pour gérer les erreurs.
  • $error_handler:一个可调用对象,用于处理错误。
  • $error_types(可选):要捕获的错误的位掩码常量。

实战案例

让我们写一个函数来计算两个数字的商,并使用错误处理来处理除数为 0 的情况:

function divide($numerator, $denominator)
{
    if ($denominator == 0) {
        trigger_error("Cannot divide by zero", E_USER_ERROR);
    }

    return $numerator / $denominator;
}

我们接下来设置错误处理程序来捕获此函数中的错误:

set_error_handler(function(int $errno, string $errstr) {
    if ($errno === E_USER_ERROR) {
        echo "Error: $errstr\n";
    }
});

$result = divide(10, 2); // 输出: 5
$result = divide(10, 0); // 输出: Error: Cannot divide by zero

自定义错误类型

我们还可以使用 trigger_error() 创建自定义错误类型,并通过 $error_types 指定要捕获的自定义错误:

function trigger_custom_error()
{
    trigger_error("Custom error", E_USER_NOTICE); // 创建自定义错误
}

set_error_handler(function(int $errno, string $errstr) {
    if ($errno === E_USER_NOTICE) {
        echo "Custom error occurred: $errstr\n";
    }
});

trigger_custom_error(); // 输出: Custom error occurred: Custom error

恢复错误处理

要恢复到默认错误处理行为,可以使用 restore_error_handler()$error_types (facultatif) : constante de masque de bits pour les erreurs à détecter.

Cas pratique🎜🎜Écrivons une fonction pour calculer le quotient de deux nombres et utilisons la gestion des erreurs pour gérer le cas où le diviseur est 0 :🎜
set_error_handler(function() {}); // 设置自定义错误处理程序
restore_error_handler(); // 恢复到默认错误处理
🎜Nous configurons ensuite un gestionnaire d'erreurs pour détecter Erreurs dans cette fonction : 🎜rrreee🎜Types d'erreurs personnalisés🎜🎜Nous pouvons également créer des types d'erreurs personnalisés en utilisant trigger_error() et spécifier ce qu'il faut capturer via $error_types Erreurs personnalisées : 🎜 rrreee🎜Restaurer la gestion des erreurs🎜🎜Pour restaurer le comportement de gestion des erreurs par défaut, vous pouvez utiliser la fonction restore_error_handler() : 🎜rrreee

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn