(PHP 8 >= 8.1.0)
Fiber::throw — Retoma a execução de uma Fiber com uma exceção
Retoma a Fiber disparando a exceção informada a partir da chamada Fiber::suspend() atual.
Se a Fiber não estiver suspensa quando este método é chamado, uma exceção FiberError será disparada.
exceptionA exceção a ser disparada na Fiber a partir da chamada Fiber::suspend() atual.
O valor fornecido à próxima chamada a Fiber::suspend() ou null se a Fiber retornar.
Se a Fiber disparar uma exceção antes de ser suspensa, ela será disparada a partir da chamada a este método.
<?php
$fiber = new Fiber(function () {
try {
// Suspende execução do fiber declarando um ponto de interrupção
Fiber::suspend();
} catch (Throwable $e) {
echo $e->getMessage();
}
});
$fiber->start();
// Continua a execução do fiber passando
// a exceção a ser lançada no ponto de interrupção
$fiber->throw(new Exception('Mensagem de uma exceção lançada no ponto de interrupção atual'));
?>O exemplo acima produzirá algo semelhante a:
Mensagem de uma exceção lançada no ponto de interrupção atual