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