Maison > développement back-end > tutoriel php > Meilleures pratiques pour la gestion des erreurs de fonction PHP

Meilleures pratiques pour la gestion des erreurs de fonction PHP

PHPz
Libérer: 2023-06-15 21:24:02
original
1098 Les gens l'ont consulté

PHP est un langage de script largement utilisé, notamment dans le développement web, qui joue un rôle très important. Dans le processus de développement PHP, la gestion des erreurs est un problème très important. La gestion des erreurs de fonction en est une partie très importante. Cet article présentera quelques bonnes pratiques pour la gestion des erreurs des fonctions PHP afin d'aider les développeurs à mieux faire face aux diverses erreurs pouvant survenir lors de l'écriture de code de haute qualité.

1. Utilisez la structure try/catch

PHP fournit la structure try/catch, qui est également le moyen le plus basique de gérer les erreurs de fonction PHP. Utilisez la structure try/catch pour effectuer la gestion des erreurs lorsqu'une erreur se produit dans le code afin d'éviter que le code ne plante en raison d'une seule erreur.

Par exemple, voici une fonction simple qui se connecte à la base de données et exécute une requête SQL :

function run_query($query) {
    $conn = mysqli_connect("localhost", "username", "password", "database");
    if(!$conn) {
        throw new Exception("Database connection failed.");
    }
    $result = mysqli_query($conn, $query);
    if(!$result) {
        throw new Exception("Query failed: " . mysqli_error($conn));
    }
    mysqli_close($conn);
    return $result;
}
Copier après la connexion

Dans la fonction, s'il y a une erreur de connexion à la base de données ou d'exécution de la requête, nous lancerons une exception. Cependant, pendant le processus d'appel de fonction, nous devons utiliser la structure try/catch pour intercepter ces exceptions et les gérer en conséquence :

try {
    $result = run_query("SELECT * FROM users");
} catch(Exception $e) {
    echo "Error: " . $e->getMessage();
    exit;
}
//使用$result继续代码的执行
Copier après la connexion

De cette façon, lorsqu'un problème survient dans la fonction, le code ne plantera pas, mais affichera un message d'erreur et arrêter l'exécution du script. Cela peut améliorer la robustesse de votre code.

2. Utiliser le contrôle du niveau d'erreur

En PHP, nous pouvons utiliser le niveau d'erreur pour contrôler la gestion des erreurs des fonctions. En passant différents niveaux d'erreur à la fonction error_reporting(), nous pouvons contrôler le comportement de la fonction lorsqu'une erreur se produit. Les niveaux d'erreur couramment utilisés en PHP sont :

  • E_ERROR : erreur fatale. Cette erreur empêchera le code de continuer l'exécution et vous devrez utiliser die(), exit() et d'autres fonctions pour terminer le script.
  • E_WARNING : Erreur d'avertissement. Cette erreur rappelle uniquement au développeur les problèmes possibles dans le code, mais ne provoquera pas le crash du code. Le développeur doit apporter des modifications en fonction du message d'erreur.
  • E_NOTICE : Faites attention aux erreurs. Cette erreur n'affectera pas l'exécution du code, mais peut amener le développeur à avoir des valeurs de variable erronées ou à renvoyer des résultats. Les développeurs sont tenus de revoir le code et d'apporter des modifications.

Lors du développement du code PHP, nous vous recommandons d'utiliser des niveaux d'erreur appropriés pour garantir une exécution fluide du code et une sortie de haute qualité.

3. Utiliser la valeur de retour et le code d'état

Lors du traitement des erreurs de fonction, nous pouvons utiliser la valeur de retour et le code d'état de deux manières. En définissant différentes valeurs de retour et codes d'état de la fonction, nous pouvons obtenir des informations d'erreur pertinentes après l'exécution de la fonction. Il s'agit d'une méthode de gestion des erreurs très courante et souvent utilisée dans les packages MySQLi.

Ci-dessous, nous pouvons utiliser la valeur de retour d'une fonction pour déterminer si la requête réussit et renvoyer les résultats de requête pertinents en même temps :

function get_user_info($user_id) {
    $conn = mysqli_connect("localhost", "username", "password", "database");
    if(!$conn) {
        return array(false, "Database connection failed.");
    }
    $result = mysqli_query($conn, "SELECT * FROM users WHERE user_id={$user_id}");
    if(!$result) {
        return array(false, "Query failed: " . mysqli_error($conn));
    }
    $users = array();
    while($row = mysqli_fetch_assoc($result)) {
        $users[] = $row;
    }
    mysqli_close($conn);
    return array(true, $users);
}
Copier après la connexion

Dans cette fonction, si la requête réussit, la fonction retournera vrai et un tableau de résultats de requête. Si la requête échoue, la fonction renverra false et un message d'erreur. Nous pouvons alors juger de la valeur de retour de la fonction lorsqu'elle est appelée, et ainsi choisir comment gérer les erreurs en fonction de l'exécution de la fonction.

$user_info = get_user_info(1);
if(!$user_info[0]) {
    echo "Error: " . $user_info[1];
    exit;
}
//使用$user_info[1]继续代码的执行
Copier après la connexion

Notez que lorsque vous utilisez des valeurs de retour et des codes d'état pour gérer les erreurs, vous devez éviter que les fonctions renvoient plusieurs types de résultats. Cela augmentera la complexité du code et réduira la lisibilité du code.

4. Combiné avec la journalisation des erreurs

Pendant le processus de développement du code, nous vous recommandons d'équiper le serveur d'un système de journalisation des erreurs. Ce système de journalisation peut détecter les erreurs pendant l'exécution du code et écrire les informations sur les erreurs dans un fichier journal. Nous pouvons utiliser la fonction error_log() intégrée de PHP pour implémenter la journalisation.

function logging_query($query, $filename) {
    $conn = mysqli_connect("localhost", "username", "password", "database");
    if(!$conn) {
        error_log("Database connection failed.", 0);
        return false;
    }
    $result = mysqli_query($conn, $query);
    if(!$result) {
        error_log("Query failed: " . mysqli_error($conn), 0);
        return false;
    }
    mysqli_close($conn);
    return true;
}
Copier après la connexion

Toujours le même que l'exemple précédent, dans la fonction, nous enregistrons les informations d'erreur lorsqu'une erreur se produit. Cette méthode peut non seulement aider les développeurs à localiser les erreurs, mais également surveiller les applications Web et nous aider à découvrir les problèmes potentiels.

Conclusion

La gestion des erreurs de la fonction PHP est une partie très importante dans le processus de développement de code, nous rencontrons souvent diverses erreurs. En utilisant les bonnes pratiques décrites dans cet article, nous pouvons gérer ces erreurs et maintenir la qualité de notre code. Bien entendu, il existe de nombreuses autres méthodes de gestion des erreurs, telles que l'utilisation d'assertions et d'exceptions, la garantie de la sécurité dans la gestion des erreurs, etc. J'espère que cet article pourra aider les développeurs PHP à mieux comprendre les technologies associées à la gestion des erreurs de fonction.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal