Fiber::throw

(PHP 8 >= 8.1.0)

Fiber::throwRetoma a execução de uma Fiber com uma exceção

Descrição

public function Fiber::throw(Throwable $exception): mixed

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.

Parâmetros

exception

A exceção a ser disparada na Fiber a partir da chamada Fiber::suspend() atual.

Valor Retornado

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.

Exemplos

<?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