其中,Exception是异常类(php中定义好的一个类,具体参见php参考文档:语音参考->异常处理).它已经封装好很多方法,常用如下:
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() 信息
Fatal error: Uncaught
exception 'MyException1' with message 'a' in
E:\Software_default\wamp_wwwroot\exception\exception04.php:12 Stack trace: #0
E:\Software_default\wamp_wwwroot\exception\exception04.php(21): A() #1
E:\Software_default\wamp_wwwroot\exception\exception04.php(31): C() #2 {main}
thrown in E:\Software_default\wamp_wwwroot\exception\exception04.phpon line 12
来自
由于产生不捕获的异常,php默认显示其异常处理函数,这时,我们添加用户自定义的顶级处理函数
案例5:
结果:
我是顶级异常处理函数,其中,异常信息为:a
来自
3.PHP异常抛出的BUG
案例6:
结果: Warning: Division by zero in E:\Software_default\wamp_wwwroot\exception\exception06.phpon line 3
来自
在案例6中,8/0,php认为是错误,而不是异常,所以,没有抛出异常,因此捕获不到异常 案例7: 结果: Warning: fopen(aa.txt) [function.fopen]: failed to
open stream: No such file or directory in E:\Software_default\wamp_wwwroot\exception\exception07.phpon line 3