Flutter

Корневые обработчики и владение

Обработчики Flutter Framework и платформы без скрытой замены другого владельца и повторной отправки ошибок.

v0.1.0-dev.1Продвинутый уровеньark_error_manager_flutter

Корневые обработчики и владение

FlutterError.onError получает перехваченные Flutter ошибки построения, компоновки, отрисовки, обратных вызовов и явных вызовов FlutterError.reportError. PlatformDispatcher.onError получает необработанные ошибки корневого Isolate вне обработчиков Framework, если их не перехватила ближайшая Zone.

FlutterErrorManagerBinding подключает оба пути:

dart
final FlutterErrorManagerBinding binding =
    FlutterErrorManagerBinding(manager: manager)..attach();

Правила владения:

  • повторный attach той же привязки идемпотентен;
  • вторая активная привязка вызывает StateError;
  • detach восстанавливает обработчики, сохранённые во время attach;
  • обработчик, позже установленный другим владельцем, не перезаписывается;
  • для ошибок дочернего Isolate нужен IsolateErrorManagerBinding.

FlutterPreviousErrorHandlerPolicy.preserve вызывает предыдущий обработчик после передачи ошибки менеджеру и сохраняет обычный диагностический вывод Flutter. Выбирайте replace, только если прежнее поведение намеренно перенесено в другое место.

Не сохраняйте второй удалённый ErrorReporter сбоев без правил дедупликации.

ARKTELOS

Инженерные системы для программного обеспечения, которое обязано выдерживать нагрузку.