Table of Content
这一篇主要介绍 PHP 5 开始支持的异常处理。
Exception 类
在 PHP 中有许多异常处理类,而这里要介绍的是它们的基类 Exception
,它包含了一些基本的属性与方法。
其中,常用的属性有:
-
message
: 异常信息 -
code
: 异常代码 -
file
: 异常所在文件名 -
line
: 异常所在行数
常用的方法有:
-
getTrace
: 获取异常追踪 -
getTraceAsString
: 获取异常追踪(字符串) -
getMessage
: 获取异常信息
try catch
要捕获异常,还需要了解 try catch
的用法:
<?php
try{
// 可能出现异常的代码,以及手动异常抛出
} catch (Exception $e){
// 异常处理
}
?>
抛出异常
那么,要怎样抛出异常呢? 只需要使用 throw
关键字即可。
举个栗子:
<?php
try {
// 抛出
throw new Exception('wrong');
} catch(Exception $e) {
// 捕获
$msg = 'Error:'.$e->getMessage()."\n";
$msg.= $e->getTraceAsString()."\n";
$msg.= 'Line:'.$e->getLine()."\n";
$msg.= 'File:'.$e->getFile()."\n";
file_put_contents('error.log', $msg);
}
?>
自定义异常处理类
在某些情况下,你也可以继承 Exception
类来自定义异常处理类。
<?php
class MyException extends Exception {
function getInfo() {
return 'the info';
}
}
try {
if (/*发生异常*/) {
throw new MyException('error');
}
} catch (Exception $e) {
echo $e->getInfo();
echo $e->getMessage();
}
?>