php7 错误处理,在PHP7中是如何进行错误处理的?

在 PHP7 中改变了大多数错误的报告方式。不再通过 PHP5 使用的传统错误报告机制来报告错误,现在大多数错误被作为 Error 异常抛出。这种 Error 异常可以像 Exception 异常一样被第一个匹配的 try / catch 块所捕获。如果没有匹配的 catch 块,则调用异常处理函数(事先通过 set_exception_handler() 注册)进行处理。

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

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

44925c2dcd1540156ad51c7ee8c4cbc2.png

Error 层次结构

ThrowableErrorArithmeticErrorDivisionByZeroError

AssertionError

ParseError

TypeError

Exception...

使用示例<?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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值