首页 > 作文

php7 错误处理机制修改实例分析

更新时间:2023-04-08 18:48:31 阅读: 评论:0

本文实例讲述了php7 错误处理机制修改。分享给大家供大家参考,具体如下:

一、现在有两个异常类:exception and error.

php7现在有两个异常类,exception and error。这两个类都实现了一个新的接口:throwable。在您的异常处理代码中,类型暗示可能需要调整下。

二、一些致命错误和可恢复致命错误改为抛出error对象。

有一些致命错误和可恢复致命错误现在改为报出error对象。error对象是和exception独立的,它们无法被常规的try/catch扑获。编者按:需要注册错误处理函数,请参考下面的rfc。

对于这些已经转为异常的可恢复致命错误,已经无法通过error handler静默的忽略掉。尤其是无法忽略类型暗示错误。

三、语法错误会抛出一个parerror对象

语法错误会抛出一个parerror对象,该对象继承自error对象。之前处理eval()的时候,对于潜在可能错误的代码除了检查返回值或者error_get_last()之吵架技巧外,还应该捕获parerror对象。

四、内部对象的构造方法如果失败的时候总会抛出异常

内部对象的构造方法如果失败的时候总会报出异常。之前的有一些构造方法会返回null或者一个无法使用的对象。

五、一些e_strict错误的级别调整了。

php 7高考网上缴费 错误处理

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

这种 error 异常可以像普通异常一样被 try / catch 块所捕获。如果没有匹配的 try / catch 块, 则调用异常处理函数(由 t_exception_handler() 注册)进行处理。 如果尚未注册异常处理函数,则按照传统方式处理:被报告为一个致命错误(fatal error)。

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

error 异常层次结构

1.error

arithmeticerror

asrtionerror

divisionbyzeroerror

parerror

ty赶紧的近义词是什么 peerror

2.exception

实例

<?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

php 7 异常

php 7 异常用于向下兼容及增强旧的asrt()函数。它能在生产环境中实现零成本的断言,并且提供抛出自定义异常及错误的能力。

老版本的api出于兼容目的将继续被维护,asrt()现在是一个语言结构,它允许第一个参数是一个表达式,而不仅仅是一个待计算的 string或一个待测试的boolean。

asrt() 配置

配置项默认值可选值zend.asrtions1

1 – 生成和执行代码 (开发模式)

0 – 生成代码,但在执行时跳过它

-1 – 不生成代码 (生产环境)

asrt.exception0

1 – 断言失败时抛出,可以抛出异常对象,如果没有提供异常,则抛出 asrtionerror 对象实例。

0 – 使用或生成 throwable, 仅仅是基于对象生成的警告而不是抛出对象(与 php 5 兼容)

参数

asrtion

断言。在 php 5 中,是一个用于执行的字符串或者用于测试的布尔值。在 php 7 中,可以是一个返回任何值的表达式, 它将被执行结果用于指明断言是否成功。

description

如果 asrtion 失败了,选项 description 将会包括在失败信息里。

exception

在 php 7 中,第二个参数可以是一个 throwable 对象,而不是一个字符串,如果断言失败且启用了 as高一物理公式大全rt.exception 该对象将被抛出。

实课程领导力例

将 zend.asrtions 设置为 0:

<?php ini_t('zend.asrtions', 0); asrt(true == fal); echo 'hi!'; ?>

以上程序执行输出结果为:

hi!

将 zend.asrtions 设置为 1,asrt.exception 设置为 1:

实例

<?php ini_t('zend.asrtions', 1); ini_t('asrt.exception', 1); asrt(true == fal); echo 'hi!';?>

以上程序执行输出结果为:

fatal error: uncaught asrtionerror: asrt(true == fal) in -:2stack trace:#0 -(2): asrt(fal, 'asrt(true == ...')#1 {main}  thrown in - on line 2

本文发布于:2023-04-08 18:48:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/c378c2f4f41428e5cf26bd5c64f0bf7e.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php7 错误处理机制修改实例分析.doc

本文 PDF 下载地址:php7 错误处理机制修改实例分析.pdf

标签:异常   对象   抛出   错误
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图