Maison > développement back-end > tutoriel php > Cinq minutes pour vous montrer ce qu'est la gestion des exceptions en PHP

Cinq minutes pour vous montrer ce qu'est la gestion des exceptions en PHP

WBOY
Libérer: 2023-04-10 17:58:02
original
2782 Les gens l'ont consulté

Dans l'article précédent, je vous ai présenté "Vous devez comprendre comment ajouter des filigranes d'image en PHP", qui vous a donné une introduction détaillée sur la façon d'ajouter des filigranes en PHP à travers des exemples. Continuons à regarder cet article. connaissances sur la gestion des erreurs en PHP, j'espère que cela pourra vous aider !

Cinq minutes pour vous montrer ce qu'est la gestion des exceptions en PHP

La gestion des erreurs et des exceptions en PHP est très couramment utilisée en PHP. Dans notre développement quotidien, nous rencontrerons certainement des choses comme oublier d'ajouter un point-virgule, écrire un mauvais nom de fonction ou la fonction a été redéfinie, etc. . Il y a beaucoup d'erreurs. Si nous pouvons trouver des erreurs et afficher des erreurs pendant le processus de développement, cela sera certainement très bénéfique pour notre développement.

Par conséquent, utiliser correctement un processus lors du développement d'un projet nous aidera à trouver et à corriger les erreurs pour accélérer le développement. Voyons ensuite comment comprendre notre gestion des erreurs. Vous pouvez également apprendre grâce à la vidéo pédagogique gratuite « gestion des erreurs PHP ».

Classe de gestion des exceptions en PHP

PHP fournit une classe de gestion des exceptions intégrée, qui est Exception. Cette classe contient certaines fonctions pour gérer les exceptions. Ces fonctions programment les exceptions et les erreurs. peut être attrapé. Exception,这个类包含了一些处理异常的函数,这些函数可以捕获程序异常和错误。

那下面列举出该类中较为常用的函数:

  • getTraceAsString():返回已格式化成字符串的、由函数 getTrace() 函数所产生的信息

  • __toString():产生异常的字符串信息,它可以重载。注意,该函数最前部是两个下划线

  • getMessage():返回异常的消息内容

  • getLine():返回发生错误的代码行号

  • getCode():以数字形式返回异常代码

  • getFile():返回发生异常的文件名

  • getTrace():返回 backtrace() 数组

捕获程序中的异常

程序中的异常出现一般不会自己显现出来,这时候我们可以通过try catch 语句和 throw

Voici les fonctions les plus couramment utilisées dans cette classe :

  • getTraceAsString() : renvoie les informations de chaîne de caractères formatés généré par la fonction getTrace()


  • __toString() : chaîne d'information qui génère des exceptions, elle peut être surchargée. Notez qu'il y a deux traits de soulignement devant cette fonction
  • getMessage() : renvoie le contenu anormal du message

  • getLine ()  : renvoie le numéro de la ligne de code où l'erreur s'est produite

  • getCode() : renvoie le code d'exception sous forme numérique


  • getFile() : renvoie le nom du fichier où l'exception s'est produite
  • getTrace() : renvoie le tableau backtrace()Cinq minutes pour vous montrer ce quest la gestion des exceptions en PHP li>


Catch exceptions dans le programme

Les exceptions dans le programme n'apparaîtront généralement pas d'elles-mêmes. À ce stade, nous pouvons utiliser l'instruction try catch et l'instruction. throw mot-clé pour atteindre l'objectif de détecter les exceptions dans le programme. L'instruction try catch est similaire à l'instruction de contrôle de flux. Le mot-clé throw peut lever une exception. Nous pouvons capturer l'exception dans le programme via une structure similaire à la sélection conditionnelle. Le format de syntaxe de l'instruction try catch est le suivant :

try{
    // 可能出现异常或错误的代码,比如文件操作、数据库操作等
}catch(Exception $a){    // $a 为一个异常类的对象
    // 输出错误信息
}
Copier après la connexion

Lorsque nous devons intercepter des exceptions de programme, nous devons mettre le code qui doit être intercepté dans le bloc de code try. Dans la syntaxe ci-dessus, chaque essai devrait avoir at. au moins une prise correspondante. Lorsque le bloc de code try n'intercepte pas d'exception correspondante, le code passe à la dernière capture et continue.


Les exceptions générées peuvent être rejetées par l'instruction throw et capturées par catch. Lorsqu'une exception se produit, le code derrière elle ne continuera plus à s'exécuter.


L'exemple est le suivant :

<?php
    try{
        $err = &#39;抛出异常信息,并跳出 try 语句块&#39;;
        if(is_dir(&#39;./demo&#39;)){
            echo &#39;这里是一些可能会发生异常的代码&#39;;
        }else{
            throw new Exception($err, 20211020);   // 抛出异常
        }
        echo &#39;上面抛出异常的话,这行代码将不会执行,转而执行 catch 中的代码。<br>&#39;;
    }catch(Exception $e){
        echo &#39;捕获异常:&#39;.$e->getMessage().&#39;<br>错误代码:&#39;.$e->getCode().&#39;<br>&#39;;
    }
    echo &#39;继续执行 try catch 语句之外的代码&#39;;
?>
Copier après la connexion

Résultat de sortie :


Dans l'exemple ci-dessus, l'instruction try est utilisée pour essayer de déterminer s'il existe un répertoire nommé demo dans le répertoire actuel. n'existe pas, donc le mot-clé throw est exécuté. Une exception s'est produite. Une fois l'exception trouvée et levée, les instructions restantes de l'instruction try ne seront pas exécutées.

🎜🎜Créez votre propre classe d'exceptions🎜🎜🎜🎜🎜 Vous pouvez définir certaines exceptions en PHP à l'avance, car PHP lève rarement activement des exceptions. Lorsque les exceptions sont définies à l'avance, nous pouvons utiliser if-else pour les gérer. . Jugez les exceptions possibles et lancez des exceptions manuellement. En PHP, nous pouvons souvent utiliser les classes d'exception que nous créons nous-mêmes. 🎜🎜🎜Les exemples sont les suivants : 🎜🎜
<?php
class emailException extends Exception{
    function __toString(){
        return "<b>email is null</b>file:".$this->getFile().&#39;,line:&#39;. $this->getLine();
    }
}
class nameException extends Exception{
}
?>
Copier après la connexion
🎜Dans l'exemple ci-dessus, deux classes d'exception sont définies, toutes deux héritant de la classe de base Exception. 🎜🎜Dans les affaires réelles, nous lancerons également différentes exceptions en fonction de différents besoins. Les exemples sont les suivants : 🎜
function reg($reg) {
    if (empty($reg[&#39;email&#39;])) {
        throw new emailException("emaill is null", 1);
    }
    if(empty($reg[&#39;name&#39;])) {
        throw new nameException("name is null", 2);
     }
}
Copier après la connexion
🎜Lors de l'exécution du code métier, vous pouvez utiliser l'instruction if pour déterminer où l'exception se produira, puis la lancer manuellement Exception. , différentes exceptions sont distribuées à différentes classes d'exceptions pour être traitées via des instructions ; dans l'exemple suivant, différentes exceptions sont capturées en fonction de différentes situations. Lorsque le premier catch intercepte l'exception, même s'il existe encore d'autres exceptions dans le programme, Autre code de catch. les blocs seront également ignorés. Qu'il y ait ou non une exception dans le programme, les instructions du fichier final seront exécutées. Un exemple est le suivant : 🎜🎜
try{
    $reg = array(&#39;phone&#39;=>&#39;1888888888&#39;);
    reg($reg);
} catch(emailException $e) {
    echo $e;
} catch(nameException $e) {
    echo &#39;error msg:&#39; .$e->getMessage().&#39;error code:&#39;.$e->getCode();
} finally {
    echo &#39; finally&#39;;
}
Copier après la connexion
🎜 Si vous souhaitez en savoir plus sur PHP, vous pouvez cliquer sur "🎜Tutoriel vidéo PHP🎜" pour apprendre ! 🎜

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