Generator::throw

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::throw — 제너레이터에 예외를 던집니다.


설명

public Generator::throw(Throwable $exception): mixed

제너레이터에 예외를 던지고 제너레이터의 실행을 재개합니다. 동작은 현재 yield 표현식이 throw $exception 문으로 대체된 것과 동일합니다.

이 메서드가 호출될 때 생성기가 이미 닫혀 있으면 대신 호출자의 컨텍스트에서 예외가 throw됩니다.


매개변수

exception
생성기에 예외가 발생했습니다.

반환 값

산출된 값을 반환합니다.


Examples

예제 #1 제너레이터에 예외 던지기

                  
<?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'));
?>
                  
                

위의 예는 다음을 출력합니다.

Foo
Exception: Test
Bar