异常
绝大多数异常无法自动抛出,需要手动抛出然后抓取
<?php
$a = 5;
$b = 0;
try{
$c = $a/$b;//这样是不会抛出异常的,需要如下手动抛出异常
//throw new Exception('除数不能为0',1);
}catch(Exception $e){
echo $e->getMessage();
}
php异常级别
1 E_ERROR 致命的运行时错误(它会阻止脚本的执行)
2 E_WARNING 运行时警告(非致命的错误)
4 E_PARSE 解析错误
8 E_NOTICE 注意(事情可能是或者可能不是一个问题)
256 E_USER_ERROR 用户生成的错误消息,由trigger_error()函数生成
512 E_USER_WARNING 用户生成的警告,由trigger_error()函数生成
1024 E_USER_NOTICE 用户生成的注意,由trigger_error()函数生成
2048 E_STRICT 关于兼容性和互操作性的建议
8191 E_ALL 所有的错误、警告和建议
自定义异常(继承异常)
<?php
class Exception
{
protected $message = 'Unknown exception'; // 异常信息
private $string; // __toString cache
protected $code = 0; // 用户自定义异常代码
protected $file; // 发生异常的文件名
protected $line; // 发生异常的代码行号
private $trace; // backtrace
private $previous; // previous exception if nested exception
public function __construct($message = null, $code = 0, Exception $previous = null);
final private function __clone(); // Inhibits cloning of exceptions.
final public function getMessage(); // 返回异常信息
final public function getCode(); // 返回异常代码
final public function getFile(); // 返回发生异常的文件名
final public function getLine(); // 返回发生异常的代码行号
final public function getTrace(); // backtrace() 数组
final public function getPrevious(); // 之前的 exception
final public function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息
// Overrideable
public function __toString(); // 可输出的字符串
}
?>