Spec-Zone.ru › Dart 2

dart:async

Конструктор Future<T>.error

Future<T>.error(
  1. Object error,
  2. [StackTrace? stackTrace]
)

Создает будущее, которое завершается ошибкой.

Созданное будущее будет завершено ошибкой в будущем микрозадаче. Это позволяет достаточно времени, чтобы кто-то смог добавить обработчик ошибок в будущее. Если обработчик ошибок не добавлен до завершения будущего, ошибка будет считаться необработанной.

Используйте Completer для создания будущего и завершения его позже.

Пример:

Future<int> getFuture() {
 return Future.error(Exception('Issue'));
}

final error = await getFuture(); // Throws.

Реализация

factory Future.error(Object error, [StackTrace? stackTrace]) {
  // TODO(40614): Remove once non-nullability is sound.
  checkNotNullable(error, "error");
  if (!identical(Zone.current, _rootZone)) {
    AsyncError? replacement = Zone.current.errorCallback(error, stackTrace);
    if (replacement != null) {
      error = replacement.error;
      stackTrace = replacement.stackTrace;
    }
  }
  stackTrace ??= AsyncError.defaultStackTrace(error);
  return new _Future<T>.immediateError(error, stackTrace);
}

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-async/Future/Future.error.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API