Maison  >  Article  >  développement back-end  >  Quels sont les types d'erreurs courants en php

Quels sont les types d'erreurs courants en php

小老鼠
小老鼠original
2023-04-24 16:10:461962parcourir

Les types d'erreur courants en php sont : 1. Type d'erreur d'analyse, indiquant une erreur d'analyse ou une erreur de syntaxe ; 2. Type d'erreur fatale, indiquant une erreur fatale ; 3. Type d'avertissement, indiquant une erreur d'avertissement ; . Type obsolète, indiquant le niveau d’erreur le plus bas.

Quels sont les types d'erreurs courants en php

Le système d'exploitation de ce tutoriel : système Windows 10, PHP version 8.1, ordinateur Dell G3.

1. Type d'erreur PHP

Niveau d'erreur PHP

Erreur d'analyse > Erreur fatale > Avis > C'est l'erreur la plus simple à rencontrer en programmation et la plus simple à résoudre. Par exemple, s'il manque un point-virgule, un message d'erreur s'affichera. Cette erreur arrête l'exécution du programme et affiche un message d'erreur. Nous pouvons corriger le programme en fonction du message d'erreur et le réexécuter.

【Exemple】Ce qui suit montre les erreurs de syntaxe courantes et les messages d'erreur associés via un code simple.

<?php
    $a = 1;
    $b = 2;
    $c = $a + $b
    echo ;
?>
; est omis à la fin de la ligne 4 dans le code ci-dessus, donc l'exécution du code ci-dessus affichera le message d'erreur suivant :

Parse error: syntax error, unexpected &#39;echo&#39; (T_ECHO) in D:\WWW\index.php on line 5

Comme le montrent l'exemple ci-dessus et les résultats de l'exécution, les erreurs de syntaxe empêcheront le programme de continuer à exécuter. Ce n'est qu'une fois ces erreurs résolues que le programme pourra s'exécuter correctement.

2. Erreur fatale :

C'est le type d'erreur où le compilateur PHP comprend le code PHP mais identifie une fonction non déclarée. Cela signifie appeler une fonction sans définition de fonction.

Le programme signale directement une erreur et le code doit être modifié ! ! ! Pour interrompre l'exécution du programme, vous pouvez utiliser la fonction register_shutdown_function() pour déclencher une fonction avant la fin du programme, comme

<?php 
function add($x, $y) { 
    $sum = $x + $y; 
    echo "sum = " . $sum; 
}
$x = 0; 
$y = 20;
add($x, $y); 
diff($x, $y); 
?>

Explication : À la ligne 10, la fonction diff() est appelée, mais la fonction diff() n'a pas de définition de déclaration, donc cela donne une erreur.

3. Avertissement : Quels sont les types derreurs courants en php

Il n'y a pas d'erreur de syntaxe dans le programme, mais pendant le processus d'exécution, PHP détectera certains aspects déraisonnables du programme, provoquant ainsi un message d'avertissement, mais le programme continuera à s'exécuter.

Exemple : L'utilisation de 0 comme diviseur entraînera un mauvais fonctionnement du programme et générera un message d'erreur.

<?php
    $a = 1;
    $b = 0;
    $c = $a / $b;
    echo "$a / $b = $c";
?>
Erreur :

4. Remarque :

Quels sont les types derreurs courants en phpC'est similaire à une erreur d'avertissement, ce qui signifie que le programme contient une erreur, mais il permet l'exécution du script. Il apparaîtra lors de l'utilisation de variables non définies, de constantes ou de clés de tableau sans guillemets, et le programme continue de s'exécuter

<?php  
header("content-type:text/html;charset=utf-8");
$x = "PHP中文网"; 
echo $x; 
echo $y; 
?>

Explication : Ce programme utilise la variable non déclarée $y, il donne donc un message d'erreur.

5. L'erreur de niveau le plus bas (obsolète, non recommandé, non recommandé)

se produira lors de l'utilisation de certaines fonctions expirées et le programme continuera à s'exécuter.

2. Configuration des erreurs PHP

En plus de la définir dans le script, vous pouvez également la configurer dans le fichier de configuration php.ini

error_reporting = E_ALL&~E_NOTICE; //设置错误报告级别
display_errors = 1; //开发环境开启,生产环境关闭

3. Exception PHP

L'exception PHP est une nouvelle fonctionnalité de PHP5, qui est similaire aux exceptions JAVA/C#, est différent. Les exceptions PHP doivent être levées manuellement en lançant une nouvelle exception au lieu d'être lancées automatiquement par le système.

La différence entre les erreurs PHP et les exceptions. Ce sont deux concepts différents, mais ils ont quelque chose en commun : Si l'exception n'est pas détectée et gérée, le programme se terminera et signalera une erreur fatale. vous voyez cela. Les anomalies ne sont pas une sorte d’erreur. C’est une illusion, mais cela peut être compris de cette façon. Cependant, le programme peut continuer à s'exécuter une fois l'exception interceptée, mais le programme doit se terminer après que la véritable erreur fatale se soit produite.

Les exceptions peuvent être capturées à l'aide de try{}catch(){}. Après la capture, le code suivant peut continuer à s'exécuter ; tandis que les erreurs ne peuvent pas être capturées à l'aide de try{}catch(){}. capturé.

Si une exception est levée, elle doit être interceptée, sinon le programme mettra fin à son exécution.

4. Exceptions et erreurs PHP levées

try{}catch(){}来捕获捕获,捕获之后后续代码可以继续执行;而错误是无法使用try{}catch(){}捕获的。

如果抛出了异常,就必须捕获它,否则程序终止执行。

四、PHP异常与错误的抛出

异常抛出:throw new Exception(‘Some Error Message’);

错误抛出:trigger_error();

trigger_error()触发的错误不会被try-catch异常捕获语句捕获

五、PHP错误处理

set_error_handler()

只能处理Deprecated、Notice、Waning这三种级别错误,而且处理后,脚本将会继续执行发生错误的后一行。

register_shutdown_function()

这个方法是脚本结束前的最后一个回调函数,所以无论是die()/错误(异常)/还是脚本正常结束都会调用

六、PHP异常处理

set_exception_handler()

设置默认的异常处理程序,有try/catch捕获的话这个函数就不会执行,反之就会执行,而且执行的话,脚本将不会继续执行发生异常的后一行代码,程序马上中止

set_exception_handler()

Exception levée : lancer une nouvelle exception ('Un message d'erreur');🎜🎜Erreur lancée : trigger_error( ); 🎜🎜trigger_error()L'erreur déclenchée ne sera pas capturée par l'instruction de capture d'exception try-catch🎜🎜🎜5. La gestion des erreurs PHP🎜🎜
<?php
class App{
    function myException($exception) {
        echo "<b>Exception:</b> " , $exception->getMessage();
    }
}
set_exception_handler(array(&#39;App&#39;,&#39;myException&#39;));
 
throw new Exception(&#39;Uncaught Exception occurred&#39;);
?>
🎜 ne peut gérer que les niveaux obsolète, avis et décroissant. d'erreurs, et après le traitement, le script continuera à exécuter la ligne suivante où l'erreur s'est produite. 🎜rrreee🎜Cette méthode est la dernière fonction de rappel avant la fin du script, elle sera donc appelée que ce soit die()/error (exception)/ou que le script se termine normalement🎜🎜🎜 6. Gestion des exceptions PHP🎜🎜rrreee🎜Set le programme de gestion des exceptions par défaut, s'il y a une capture try/catch, cette fonction ne sera pas exécutée, sinon elle sera exécutée, et si elle est exécutée, le script ne continuera pas à exécuter la ligne de code suivante où l'exception se produit, et le le programme se terminera immédiatement🎜🎜set_exception_handler() code>Notes🎜<p><code>set_exception_handler(“myException”) 不仅可以接受函数名,还可以接受类的方法(公开的静态方法 及 公开的非静态方法 都可以),但需要以 数组形式 传递,数组的第一值为“类名”,第二个参数为“方法名”,如下代码所示:

<?php
class App{
    function myException($exception) {
        echo "<b>Exception:</b> " , $exception->getMessage();
    }
}
set_exception_handler(array(&#39;App&#39;,&#39;myException&#39;));
 
throw new Exception(&#39;Uncaught Exception occurred&#39;);
?>

七、PHP7 异常处理的大变化

在PHP7之前,Deprecated、Notice、Waning这类错误是可以捕获的(使用set_error_handler()函数),而Fatel Error无法捕获的。

在PHP7之后,出现了一个异常与错误通用的接口Throwable,Exception类与Error类都实现了该接口,导致Error类或Error类的派生类的错误对象(大部分Fatel Error,而之前三类错误不变)也可以像Exception一样被捕获(2种捕获方法:1、try/catch 2、set_exception_handler())。

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