跳转到主要内容

throw

Generator::throw

Throw an exception into the generator

ENTITY

public

mixed

Generator::throw

Throwable

exception

Throws an exception into the generator and resumes execution of the generator. The behavior will be the same as if the current ENTITY expression was replaced with a throw $exception statement.

If the generator is already closed when this method is invoked, the exception will be thrown in the caller's context instead.

ENTITY

exception
Exception to throw into the generator.

ENTITY

Returns the yielded value.

ENTITY

Throwing an exception into a generator

<?php
function gen() {
    echo "Foo\n";
    try {
        yield;
    } catch (Exception $e) {
        echo "Exception: {$e->getMessage()}\n";
    }
    echo "Bar\n";
}
 
$gen = gen();
$gen->rewind();
$gen->throw(new Exception('Test'));
?>

    

ENTITY

Foo
Exception: Test
Bar