Maison >développement back-end >Problème PHP >Comment concevoir des classes d'exception dans les projets PHP
La gestion des exceptions est classée comme gestion des erreurs. PHP a ajouté la classe de gestion des exceptions Exception à partir de la version 5.1.0.
1. Gestion des exceptions
La gestion des exceptions PHP est similaire à Java, utilisant les instructions try, throw et catch pour coder lorsqu'une exception se produit. Si l'exception n'est pas interceptée et que la fonction set_exception_handler() est utilisée pour le traitement correspondant, une erreur grave (erreur fatale) se produira et un message d'erreur "Uncaught Exception" sera généré.
1. essayez :
est utilisé pour les blocs de code où des exceptions peuvent survenir.
2. throw :
spécifie comment déclencher des exceptions, utilisé pour lancer des exceptions. Chaque lancer doit correspondre à au moins une prise.
3. catch :
Interceptez les exceptions et créez des objets contenant des informations sur les exceptions.
Remarque : supposons que des exceptions php doivent être levées pour les intercepter.
Structure de base :
try{ #some codes throw new Exception("message"[,code[,...]]); } catch(Exception $ex){ #some codes }
2. Classe de base d'exception PHP Exception
Résumé de la classe :
Exception { /* 属性 */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; /* 方法 */ public __construct ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] ) final public string getMessage ( void ) final public Exception getPrevious ( void ) //获取异常链中前一个异常 final public int getCode ( void ) final public string getFile ( void ) final public int getLine ( void ) final public array getTrace ( void ) //获取异常追踪信息 final public string getTraceAsString ( void ) //字符串方式返回异常追踪信息 public string __toString ( void ) final private void __clone ( void ) }
Exemple :
<?php try { throw new Exception("Some error message", 30);//抛出异常,设置异常代号为30 } catch(Exception $e) { echo "Exception:file:".$e->getFile().",message:" . $e->getMessage().",code:".$e->getCode()."line:".$e->getLine(); } ?>
3. Classe d'exception personnalisée
Exemple :
class customException extends Exception { public function errorMessage() { //error message $errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile() .': <b>'.$this->getMessage().'</b> is not a valid E-Mail address'; return $errorMsg; } }
Lancer et attraper l'exception :
try{ throw new customException("这是自定义异常。"); } catch(customException $ex){ #some codes }
4. Exception de capture multi-catch
Lorsque différentes exceptions peuvent être levées dans une instruction try, il peut y avoir plusieurs blocs catch correspondants pour capturer différents types d'exceptions. Quelques points à noter de la même manière qu'en Java :
1. Mettez le gros catch d'exception plus tard. Parce que lorsqu'une exception est levée, quel catch est satisfait en premier est déterminé dans l'ordre, et un seul catch est exécuté à la fois.
2. Lorsque try est exécuté une fois, au plus une capture sera exécutée (lorsqu'une exception se produit). Autrement dit, si une capture précédente satisfait à l'exécution, les captures suivantes ne seront pas prises en compte.
Tutoriel recommandé : Tutoriel vidéo PHP
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!