php7抛出异常的方法

PHP 7 改变了大多数错误的报告方式。不同于 PHP 5 的传统错误报告机制,现在大多数错误被作为 Error 异常抛出。

php7抛出异常的方法

这种 Error 异常可以像普通异常一样被 try / catch 块所捕获。如果没有匹配的 try / catch 块, 则调用异常处理函数(由 set_exception_handler() 注册)进行处理。

如果尚未注册异常处理函数,则按照传统方式处理:被报告为一个致命错误(Fatal Error)。

Error 类并不是从 Exception 类 扩展出来的,所以用 catch (Exception $e) { … } 这样的代码是捕获不 到 Error 的。你可以用 catch (Error $e) { … } 这样的代码,或者通过注册异常处理函数( set_exception_handler())来捕获 Error。

Error 异常层次结构

php7抛出异常的方法

实例

<?php
class MathOperations 
{
   protected $n = 10;

   // 求余数运算,除数为 0,抛出异常
   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

原创文章,作者:PWFXF,如若转载,请注明出处:https://www.wangzhanshi.com/n/7632.html

(0)
PWFXF的头像PWFXF
上一篇 2025年1月1日 16:41:31
下一篇 2025年1月1日 16:41:33

相关推荐

  • php5与php7的区别有哪些

    php5与php7的区别是什么?下面本篇文章就来给大家对比一下php5与php7,介绍php5与php7之间的区别。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 …

    2025年1月1日
  • HashTable在PHP7中的应用

    先来简单回顾一下PHP5的Hashtable: PHP5的实现中, Hashtable的核心是存储了一个个指向zval指针的指针, 也就是zval**(我遇到不少的同学问为什么是z…

    php 2025年1月1日
  • PHP7中的异常处理和错误处理

    PHP7中异常与错误处理与之前版本对比 先上代码 ECHO PHP_VERSION.PHP_EOL; function add (int $left,int $right){ re…

    php 2025年1月1日
  • php7中如何使用mysqli扩展

    第一步:因为php7安装目录中没有php.ini文件所以可以复制php.ini-development这个文件改名为php.ini。 第二步:在php中的配置文件“;”相当于注释,…

    2025年1月1日
  • php7安装mysql扩展的方法

    php7安装mysql扩展的方法:1、下载mysql扩展;2、进行configure;3、执行【make && make install】命令;4、编辑php.in…

    php 2025年1月1日
  • php7安装sodium扩展的方法

    当前使用Centos7.x系统,php使用7.2版本 安装libsodium libsodium是安装sodium扩展的必须依赖条件,我这里提供两种安装方式,编译和直接yum 编译…

    php 2025年1月1日
  • Centos下PHP5怎么升级到PHP7

    首先下载PHP7安装包,使用wget http://am1.php.net/distributions/php-7.2.0.tar.bz2,或者直接访问下载,然后ftp到linux…

    php 2025年1月1日
  • 如何开启Laravel对PHP8的支持

    PHP 8已经官方发布了! 我们一直在努力地为所有我们的库提供支持,以便使用Laravel轻松升级到PHP 8。 首先,请确保您使用的是最新版本的Laravel 6、7或8,以获得…

    php 2025年1月2日
  • 在编译安装好的php上安装扩展模块

    大致有两种种方式: 一、通过phpize    进入php源代码扩展目录ext下,本文以curl为例,执行/usr/local/php/bin/phpize &…

    php 2025年1月26日
  • php7采坑记:浮点型数据比较

        今天在项目中遇到一个奇怪的问题,经过计算后的double类型的变量的值相等的两个变量进行比较,结果却是不相等。 <?php $a=427…

    2025年1月1日

发表回复

登录后才能评论