Fiber::throw

(PHP 8 >= 8.1.0)

Fiber::throwВозобновляет выполнение файбера с передачей исключения

Описание

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

Метод возобновляет выполнение файбера и передаёт в файбер исключение, которое выбрасывается в текущей точке прерывания стека вызовов — месте последнего вызова метода Fiber::suspend().

Вызов метода на неприостановленном файбере выбросит ошибку FiberError.

Список параметров

exception

Исключение, которое требуется выбросить в текущей точке прерывания файбера — точке вызова метода Fiber::suspend().

Возвращаемые значения

Метод возвращает значение, которое передали в очередном вызове метода Fiber::suspend(), или значение null, если файбер вернул результирующее значение. Исключение, которое файбер выбрасывает раньше очередной приостановки, выбрасывается в точке вызова этого метода.

Примеры

<?php

$fiber
= new Fiber(function () {
try {
// Приостановка выполнения файбера и объявление точки прерывания
Fiber::suspend();
} catch (
Throwable $e) {
echo
$e->getMessage();
}
});

$fiber->start();

// Возобновляем выполнение файбера
// с передачей исключения, которое выбросится в точке прерывания
$fiber->throw(new Exception('Сообщение исключения, которое выбросилось в текущей точке прерывания'));

Вывод приведённого примера будет похож на:

Сообщение исключения, которое выбросилось в текущей точке прерывания