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