从PHP 7开始,错误处理机制已更改,现在,大多数错误不是通过PHP 5使用的传统错误报告机制来报告错误,而是通过引发Error异常来处理。与异常相似,这些Error异常会冒泡直到到达第一个匹配的catch块。如果没有匹配的块,则将调用安装了 set_exception_handler()的默认异常处理程序。如果没有默认的异常处理程序,则该异常将转换为致命错误,并将像传统错误一样进行处理。
由于Error层次结构不是从Exception扩展的,因此在PHP 5中使用catch(Exception $e){...}块来处理未捕获的异常的代码将无法处理此类错误。需要使用catch(Error $e ){...}块或 set_exception_handler()处理程序来处理致命错误。
<?php class MathOperations { protected $n=10; //Try to get the Division by Zero error object and display as Exception public function doOperation(): string { try { $value=$this->n % 0; return $value; } catch (DivisionByZeroError $e) { return $e->getMessage(); } } } $mathOperationsObj=new MathOperations(); print($mathOperationsObj->doOperation()); ?>
它产生以下浏览器输出-
链接:https://www.learnfk.comhttps://www.learnfk.com/php7+/php7-error-handling.html
来源:LearnFk无涯教程网
Modulo by zero
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
Tony Bai · Go语言第一课 -〔Tony Bai〕