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

Метод addError

Метод addError класса StreamController добавляет ошибку в поток. Первым параметром метод принимает объект ошибки, который будет передан слушателям. Вторым необязательным параметром можно передать стек вызовов (StackTrace), связанный с этой ошибкой. После вызова этого метода все подписчики потока получат событие ошибки.

Синтаксис

controller.addError(error, [stackTrace])

Пример

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

import 'dart:async'; void main() { StreamController controller = StreamController(); controller.stream.listen( (data) => print('Data: $data'), onError: (error) => print('Error: $error'), ); controller.addError('Something went wrong'); controller.close(); }

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

"Error: Something went wrong"

Пример

Давайте передадим в метод addError также и объект StackTrace, чтобы слушатель мог получить информацию о месте возникновения ошибки:

import 'dart:async'; void main() { StreamController controller = StreamController(); controller.stream.listen( (data) => print('Data: $data'), onError: (error, stackTrace) { print('Error: $error'); print('Stack trace available: ${stackTrace != null}'); }, ); try { throw Exception('Custom error'); } catch (e, s) { controller.addError(e, s); } controller.close(); }

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

"Error: Exception: Custom error" "Stack trace available: true"

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

  • класс StreamController,
    который управляет потоком
  • метод add,
    который добавляет данные в поток
  • метод close,
    который закрывает поток
  • свойство stream,
    которое возвращает поток контроллера
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить