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 !
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
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 fonctiongetMessage()
: 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 produitegetTrace()
: renvoie le tableau backtrace() 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 为一个异常类的对象 // 输出错误信息 }
L'exemple est le suivant :
<?php try{ $err = '抛出异常信息,并跳出 try 语句块'; if(is_dir('./demo')){ echo '这里是一些可能会发生异常的代码'; }else{ throw new Exception($err, 20211020); // 抛出异常 } echo '上面抛出异常的话,这行代码将不会执行,转而执行 catch 中的代码。<br>'; }catch(Exception $e){ echo '捕获异常:'.$e->getMessage().'<br>错误代码:'.$e->getCode().'<br>'; } echo '继续执行 try catch 语句之外的代码'; ?>
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().',line:'. $this->getLine(); } } class nameException extends Exception{ } ?>
function reg($reg) { if (empty($reg['email'])) { throw new emailException("emaill is null", 1); } if(empty($reg['name'])) { throw new nameException("name is null", 2); } }
try{ $reg = array('phone'=>'1888888888'); reg($reg); } catch(emailException $e) { echo $e; } catch(nameException $e) { echo 'error msg:' .$e->getMessage().'error code:'.$e->getCode(); } finally { echo ' finally'; }
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!