(PHP 5 >= 5.5.0, PHP 7)
Generator::throw — Lance une exception dans le générateur
Lance une exception dans le générateur et reprend son exécution. Le comportement sera le même que si l'expression yield courante ait été remplacée avec une expression throw $exception.
If the generator is already closed when this method is invoked, the exception will be thrown in the caller's context instead.
exception
Exception à lancer dans le générateur.
Retourne la valeur cédée.
Exemple #1 >Lance une exception dans un générateur
<?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'));
?>
L'exemple ci-dessus va afficher :
Foo Exception : Test Bar