(PHP 5 >= 5.5.0, PHP 7, PHP 8)
Generator::throw — Wirft eine Exception in einen Generator
Wirft eine Exception in einem Generator und setzt die Ausführung des Generators fort. Der Generator verhält sich dann so, als wäre der aktuelle yield-Ausdruck durch eine throw $exception
-Anweisung ersetzt worden.
Wenn der Generator beim Aufruf dieser Methode bereits geschlossen ist, wird die Exception stattdessen im Kontext des aufrufenden Codes geworfen.
exception
Die Exception, die in den Generator geworfen wird.
Gibt den gelieferten Wert zurück.
Beispiel #1 Eine Exception in einen Generator werfen
<?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'));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Foo Exception: Test Bar