РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
514 of 723 menu

Конструктор error

Конструктор error класса Stream создает поток, который сразу же после подписки отправляет событие с ошибкой и завершается. В первый параметр мы передаем объект ошибки, который будет передан слушателю. Во второй необязательный параметр мы можем передать трассировку стека (объект StackTrace), которая также будет доступна в обработчике ошибки.

Синтаксис

Stream.error(error, [stackTrace])

Пример

Давайте создадим поток с ошибкой и подпишемся на него, чтобы увидеть, как обрабатывается событие ошибки:

void main() { Stream stream = Stream.error('Something went wrong'); stream.listen( (data) { print('Data: $data'); }, onError: (error) { print('Error: $error'); }, onDone: () { print('Stream is done'); } ); }

Результат выполнения кода:

"Error: Something went wrong" "Stream is done"

Пример

Давайте передадим в конструктор не только ошибку, но и трассировку стека, чтобы получить более подробную информацию:

void main() { try { throw Exception('Test exception'); } catch (e, stackTrace) { Stream stream = Stream.error(e, stackTrace); stream.listen( (data) { print('Data: $data'); }, onError: (error, stack) { print('Error: $error'); print('Stack trace available: ${stack != null}'); } ); } }

Результат выполнения кода:

"Error: Exception: Test exception" "Stack trace available: true"

Смотрите также

  • класс Stream,
    который представляет собой поток асинхронных событий
  • метод listen,
    который подписывается на события потока
  • метод handleError,
    который обрабатывает ошибки в потоке
  • метод addError,
    который добавляет ошибку в контроллер потока
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить