throw_() публичный Метод

Throw exception into generator.
public throw_ ( Throwable | Exception $e )
$e Throwable | Exception
Пример #1
0
 public function testExternalException()
 {
     $gen = (function () {
         $this->assertInstanceOf(\RuntimeException::class, (yield CoInterface::SAFE => null));
         (yield null);
     })();
     $con = new GeneratorContainer($gen);
     $con->key() === CoInterface::SAFE ? $con->send(new \RuntimeException()) : $con->throw_(new \RuntimeException());
     $this->assertTrue($con->valid());
     $this->assertFalse($con->thrown());
     $gen = (function () {
         (yield null);
         (yield null);
     })();
     $con = new GeneratorContainer($gen);
     $con->key() === CoInterface::SAFE ? $con->send(new \RuntimeException()) : $con->throw_(new \RuntimeException());
     $this->assertFalse($con->valid());
     $this->assertTrue($con->thrown());
     $this->assertInstanceOf(\RuntimeException::class, $con->getReturnOrThrown());
 }