Skip to content

php 7.1 multiple exceptions using the pipe (|) character #205

@amir-khoshbakht

Description

@amir-khoshbakht

The behavior of the software is unexpected when I use several different types of Exceptions by pipe.

class FirstException extends Exception
{

}
class SecondException extends Exception
{

}

        $a = new Deferred();
        $a->reject(new Exception('test'));

        $a->promise()
            // this will cause TypeError
            ->otherwise(function (FirstException|SecondException $exception) {
               // no exception here
            })
            ->otherwise(function (Exception $exception) {
                // also no exception here
            })
            ->otherwise(function ($exception) {
                // type error exception occurs here
            });

the situation get worse when developer don't use :
error_reporting(error_reporting() & ~E_DEPRECATED);
PHP 8.0.11

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions