Future<T>.error constructor

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

Creates a future that completes with an error.

The created future will be completed with an error in a future microtask. This allows enough time for someone to add an error handler on the future. If an error handler isn't added before the future completes, the error will be considered unhandled.

The error must not be null.

Use Completer to create a future and complete it later.

Implementation

factory Future.error(Object error, [StackTrace stackTrace]) {
  ArgumentError.checkNotNull(error, "error");
  if (!identical(Zone.current, _rootZone)) {
    AsyncError replacement = Zone.current.errorCallback(error, stackTrace);
    if (replacement != null) {
      error = _nonNullError(replacement.error);
      stackTrace = replacement.stackTrace;
    }
  }
  stackTrace ??= AsyncError.defaultStackTrace(error);
  return new _Future<T>.immediateError(error, stackTrace);
}