从PHP 7开始,错误处理和报告已更改.而不是通过PHP 5使用的传统错误报告机制报告错误,现在大多数错误都是通过抛出错误异常来处理的.与异常类似,这些错误异常会在到达第一个匹配的catch块之前冒泡.如果没有匹配的块,则将调用与 set_exception_handler()一起安装的默认异常处理程序.如果没有默认的异常处理程序,那么异常将转换为致命错误,并将像传统错误一样处理.
由于错误层次结构未从Exception扩展,代码使用catch(Exception $ e){...}块来处理PHP 5中未捕获的异常将无法处理此类错误.需要一个catch(Error $ e){...}块或一个 set_exception_handler()处理程序来处理致命错误.
示例
n % 0; return $value; } catch (DivisionByZeroError $e) { return $e->getMessage(); } } } $mathOperationsObj = new MathOperations(); print($mathOperationsObj->doOperation());?>
它产生以下浏览器输出 :
Modulo by zero