错误与异常
在 PHP 7 之前,错误处理和异常处理是分开的。
try {
$a = 5 % 0;
} catch (Exception $e) {
echo $e->getMessage();
$a = -1; // 通过异常来处理 $a 为 0 的情况,但是实际上,捕获不到该异常
}
echo $a; // 无法执行
PHP 7 开始,错误也可以像异常那样抛出。
try {
$a = 5 % 0;
// 注意,DivisionByZeroError 错误只能捕捉到 % 运算,无法捕捉 / 运算
} catch (DivisionByZeroError $e) {
echo $e->getMessage();
$a = -1;
}
echo $a; // -1
相关类
PHP 中的全部异常和错误
Throwable - 接口
Error - 所有错误的基类
ArithmeticError
DivisionByZeroError
AssertionError
CompileError
ParseError
TypeError
ArgumentCountError
Exception - 所有异常的基类
ClosedGeneratorException
DOMException
ErrorException
IntlException
JsonException
LogicException
BadFunctionCallException