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

# 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('Сообщение исключения, которое выбросилось в текущей точке прерывания'));

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

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open