Конструктор Future< T>.error
- Object error,
- [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