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

Метод completeError

Метод completeError класса Completer завершает связанный с Completer объект Future ошибкой. В первый параметр мы передаем объект ошибки, во второй необязательный параметр - трассировку стека StackTrace. После вызова этого метода Future переходит в состояние ошибки, а все обработчики catchError или then получают переданную ошибку. Если Completer уже был завершен, повторный вызов completeError приведет к ошибке состояния.

Синтаксис

completer.completeError(error, [stackTrace])

Пример

Давайте создадим Completer и завершим его ошибкой с помощью метода completeError:

void main() { Completer<int> completer = Completer<int>(); completer.future.catchError((error) { print('Caught: $error'); return 0; }); completer.completeError('Something went wrong'); }

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

"Caught: Something went wrong"

Пример

Давайте передадим в completeError объект исключения и трассировку стека:

void main() { Completer<String> completer = Completer<String>(); completer.future.catchError((error) { print('Error: ${error.message}'); return 'default'; }); try { throw FormatException('Invalid format'); } catch (e, stackTrace) { completer.completeError(e, stackTrace); } }

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

"Error: Invalid format"

Пример

Давайте проверим, что повторный вызов completeError после завершения Completer вызывает ошибку состояния:

void main() { Completer<int> completer = Completer<int>(); completer.future.catchError((error) { print('Caught: $error'); return 0; }); completer.completeError('First error'); try { completer.completeError('Second error'); } catch (e) { print('StateError: ${e.runtimeType}'); } }

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

"Caught: First error" "StateError: StateError"

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

  • метод complete,
    который завершает Future значением
  • класс Completer,
    который управляет завершением Future
  • свойство future,
    которое возвращает связанный Future
  • свойство isCompleted,
    которое проверяет завершение Completer
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить