Конструктор error
Конструктор error класса Future создает
объект Future, который сразу завершается
с ошибкой. В первый параметр мы передаем объект
ошибки, во второй - необязательный стек вызовов.
Такой Future удобно использовать для
тестирования обработки ошибок или для создания
заглушек в асинхронном коде.
Синтаксис
Future.error(error, [stackTrace])
Пример
Давайте создадим Future, который
завершается с ошибкой, и перехватим ее
с помощью метода catchError:
void main()
{
Future<int> future = Future.error('Something went wrong');
future.catchError((error) {
print('Caught: $error');
});
}
Результат выполнения кода:
"Caught: Something went wrong"
Пример
Давайте передадим в конструктор объект
исключения Exception:
void main()
{
Future<void> future = Future.error(Exception('Invalid data'));
future.catchError((error) {
print(error);
});
}
Результат выполнения кода:
"Exception: Invalid data"
Пример
Давайте также передадим стек вызовов вторым параметром и выведем его на экран:
void main()
{
StackTrace stackTrace = StackTrace.current;
Future<void> future = Future.error('Error', stackTrace);
future.catchError((error) {
print('Caught: $error');
});
}
Результат выполнения кода:
"Caught: Error"
Смотрите также
-
класс
Future,
который представляет результат асинхронной операции -
метод
catchError,
который обрабатывает ошибки Future -
метод
value,
который создает Future с успешным результатом -
метод
whenComplete,
который выполняет код после завершения Future