用实例分析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){

//打印 舛误信息

}