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.
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 ;
?>
Parse error: syntax error, unexpected 'echo' (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);
?>
3. Avertissement :
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";
?>
4. Remarque :
C'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éestry{}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()
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('App','myException')); throw new Exception('Uncaught Exception occurred'); ?>
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('App','myException')); throw new Exception('Uncaught Exception occurred'); ?>
七、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!