Maison > Article > développement back-end > PHP master avancé try catch
PHP 5 ajoute un module de gestion des exceptions similaire à d'autres langages. Les exceptions générées dans le code PHP peuvent être levées par l'instruction throw et interceptées par l'instruction catch . (Remarque : vous devez d'abord lancer pour obtenir )
Le code qui nécessite la gestion des exceptions doit être placé dans un bloc de code d'essai pour intercepter d'éventuelles exceptions.
Chaque essai doit avoir au moins une prise correspondante.
Utilisez plusieurs captures pour intercepter les exceptions générées par différentes classes.
Lorsque le bloc de code try ne génère plus d'exception ou qu'aucun catch ne peut être trouvé pour correspondre à l'exception lancée, le code PHP poursuivra son exécution après être passé au dernier catch.
Bien sûr, PHP permet de lancer à nouveau des exceptions dans les blocs catch.
Lorsqu'une exception est levée, le code suivant (Note du traducteur : fait référence au bloc de code lorsque l'exception est levée) ne continuera pas à s'exécuter et PHP tentera de trouver le premier catch correspondant.
Si une exception n'est pas interceptée et qu'il n'est pas nécessaire d'utiliser set_exception_handler() pour le traitement correspondant, alors PHP générera une erreur grave et affichera une exception non interceptée... (exception non interceptée) informations rapides.
Tout d’abord, examinons les propriétés et méthodes de base de la classe d’exception intégrée de PHP. (Hors implémentation spécifique)
<?php /** * Exception.php * * PHP5内置的异常类的属性与方法 * 以下这段代码只为说明内置异常处理类的结构,它并不是一段有实际意义的可用代码。 */ class Exception{ protected $message = 'Unknown exception'; // 异常信息 protected $code = 0; // 用户自定义异常代码 protected $file; // 发生异常的文件名 protected $line; // 发生异常的代码行号 function __construct($message = null, $code = 0); final function getMessage(); // 返回异常信息 final function getCode(); // 返回异常代码(代号) final function getFile(); // 返回发生异常的文件名 final function getLine(); // 返回发生异常的代码行号 final function getTrace(); // backtrace() 数组 final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息 //可重载的方法 function __toString(); // 可输出的字符串 } ?>
Les exemples sont les suivants :
Inclure une erreur de fichier génère une exception
<?php // 错误的演示 try { require ('test_try_catch.php'); } catch (Exception $e) { echo $e->getMessage(); } // 正确的抛出异常 try { if (file_exists('test_try_catch.php')) { require ('test_try_catch.php'); } else { throw new Exception('file is not exists'); } } catch (Exception $e) { echo $e->getMessage(); }
Plus de tutoriels : "tutoriel 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!