Рецепты
Подключить дочерний Isolate
Передать сообщения порта ошибок дочернего Isolate в менеджер приложения с явным владением обработчиком.
v0.1.0-dev.1Продвинутый уровеньark_error_manager
Подключить дочерний Isolate
Ошибка дочернего Isolate не попадает автоматически в корневую Zone или PlatformDispatcher.onError. Владелец Isolate должен подключить мост порта ошибок.
dart
final Isolate worker = await Isolate.spawn(
startWorker,
input,
paused: true,
);
final IsolateErrorManagerBinding errorBinding =
IsolateErrorManagerBinding(
isolate: worker,
manager: manager,
)..attach();
worker.resume(worker.pauseCapability!);
Создание приостановленного рабочего Isolate не позволяет ему завершиться с ошибкой до подключения обработчика. IsolateErrorManagerBinding указывает ErrorCaptureSource.isolate и передаёт удалённые Error и StackTrace в ту же упорядоченную цепочку обработки.
Отключите IsolateErrorManagerBinding перед передачей владения Isolate, принудительным завершением рабочего Isolate или закрытием менеджера. Один объект должен совместно владеть Isolate и его обработчиком ошибок.