PHP错误处理

/ / PHP错误处理

从PHP 7开始,错误处理机制已更改,现在,大多数错误不是通过PHP 5使用的传统错误报告机制来报告错误,而是通过引发Error异常来处理。与异常相似,这些Error异常会冒泡直到到达第一个匹配的catch块。如果没有匹配的块,则将调用安装了 set_exception_handler()的默认异常处理程序。如果没有默认的异常处理程序,则该异常将转换为致命错误,并将像传统错误一样进行处理。

由于Error层次结构不是从Exception扩展的,因此在PHP 5中使用catch(Exception $e){...}块来处理未捕获的异常的代码将无法处理此类错误。需要使用catch(Error $e ){...}块或 set_exception_handler()处理程序来处理致命错误。

Exception Hierarchy
<?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());
?>

它产生以下浏览器输出-

Modulo by zero

祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)

精选教程推荐

👇 以下精选教程可能对您有帮助,拓展您的技术视野

Python工匠:案例、技巧与工程实践 -〔朱雷〕

大模型微调实践课 -〔赵鹏昊/李杰〕

Python实战 · 从0到1搭建直播视频平台 -〔Barry〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

手把手带你写一门编程语言 -〔宫文学〕

Python自动化办公实战课 -〔尹会生〕

图解 Google V8 -〔李兵〕

雷蓓蓓的项目管理实战课 -〔雷蓓蓓〕

玩转Spring全家桶 -〔丁雪丰〕

📝 好记忆不如烂笔头,留下您的学习笔记吧!

暂无学习笔记,成为第一个分享的人吧!

您的笔记将帮助成千上万的学习者