php7中的错误和异常处理

西蒂奇

最近搬到了php7。发生以下错误:

argument 1 passed to MyClass\Throwable::exceptionHandler() must be an instance of Exception, instance of Error given

和各自的班级

namespace MyClass;

class Throwable
{
    public function exceptionHandler(\Exception $exception)
    {
        //logic here
    }
}

文档所述

现在,大多数错误是通过引发Error异常报告的。

这是否意味着我必须为异常处理程序提供一个实例Error或什至更通用Throwable

丹尼尔·M

Errors并且Exceptions都扩展了,Throwable但是错误并未从扩展Exception

因此,您的ExceptionHandler必须接受Type的对象Throwable才能接受Errors

最简单的解决方法是此方法,尽管您可能想重命名$ exception以使其清晰。

namespace MyClass;

class Throwable
{
    public function exceptionHandler(\Throwable $exception)
    {
        //logic here
    }
}

注意:Error不应将新类与ErrorException经典使用过的类混淆,后者通常被用作将PHP 5错误转换为Exception具有相反含义的对象的设备。

http://php.net/manual/zh/class.error.php

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Codeigniter php7错误

来自分类Dev

错误和异常处理

来自分类Dev

在 CentOS 7.3 和 PHP7 中,我无法获取 php 错误以登录到自定义日志

来自分类Dev

php7 和 jQuery 中的状态栏

来自分类Dev

处理PHP中的异常

来自分类Dev

处理在node.js中记录的错误和异常

来自分类Dev

对RxJava中的错误和异常处理感到困惑

来自分类Dev

PHP7中的PECL yaml

来自分类Dev

PHP7中的foreach更改

来自分类Dev

PHP7中的PHPSpec捕获TypeError

来自分类Dev

处理php中的特定异常

来自分类Dev

使用Nginx和php7无法加载任何PHP文件或在日志中看到任何错误

来自分类Dev

如何用Stretch中的php7替换dotdeb中的php7安装

来自分类Dev

Scala:错误处理和异常匹配

来自分类Dev

php7和php5同时在fedora上

来自分类Dev

PHP7 + curl(SSL / TLS)提供502错误网关

来自分类Dev

Ubuntu 16上php7的Apache2错误

来自分类Dev

502错误的网关nginx php7 fpm

来自分类Dev

Phpmyadmin Export Dbase在PHP7 Nginx上获取错误

来自分类Dev

语法错误,运行 php7 的文件意外结束

来自分类Dev

在 Python 2 中处理异常中的错误?

来自分类Dev

PHP7认证

来自分类Dev

使用Docker安装PHP7 fpm和memcached

来自分类Dev

在高山上安装php7:缺少libcrypto和libssl

来自分类Dev

具有PHP7和Symfony3的MongoDB

来自分类Dev

PHP7 cURL 和 SOAP 请求 SSL 失败

来自分类Dev

Laravel异常处理程序中的错误

来自分类Dev

Swift中未捕获的错误/异常处理

来自分类Dev

Java:异常处理中的未知错误