用实例分析PHP5异常处理 |
<?php /** * ■㈠PHP5的 异样 解决 * * PHP 5 增加了 类似于其它语言的 异样 解决模块 。在 PHP 代码中所产生的 异样可被 throw * 语句抛出并被 catch 语句 拿获 。需求进行 异样 解决的代码都必须放入 try 代码块内,以 * 便 拿获可能存在的 异样 。每一个 try 至少要有一个与之对应的 catch 。 使用多个 catch * 可以 拿获不同的类所产生的 异样 。当 try 代码块不再抛出 异样或者找不到 catch 能匹配 * 所抛出的 异样时,PHP 代码就会在跳转到最终一个 catch 的后面 接续执行 。固然,PHP * 同意在 catch 代码块内再次抛出(throw) 异样 。 * 当一个 异样被抛出时,其后(译者注:指抛出 异样时所在的代码块)的代码将不会 接续 * 执行,而 PHP 就会尝试搜索第一个能与之匹配的 catch 。假如一个 异样没有被 拿获,而 * 且又没用 使用 set_exception_handler() 作相应的 解决的话,那么 PHP 将会产生一 * 个严峻的 舛误,而且输出 Uncaught Exception ... (未 拿获 异样)的 揭示信息 。 */ ?> <?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(); // 可输出的字符串 } ?> <?php /** * syntax .php */ //■㈢语法 构造以及 综合 //PHP有两种抛出 异样的 格局,如下 //【1】try...catch... try { // 履行可能有 异样的操作, 比方数据库错作,文件错作 }catch (Exception $e){ //打印 舛误信息 } |