runAppInZone static method
Оборачивает body в runZonedGuarded с отчётом в лог и NexoCrashReporter.
Первой строкой в body обычно вызывают WidgetsFlutterBinding.ensureInitialized,
затем DI, install, и в конце — runApp.
Ошибки из самого body перехватываются и отчитываются (без повторного выброса),
чтобы Future завершался; второй канал — необработанные ошибки в зоне.
Implementation
static Future<void> runAppInZone(Future<void> Function() body) async {
await runZonedGuarded(
() async {
try {
await body();
} catch (e, s) {
_report(e, s);
}
},
(Object error, StackTrace stack) {
_report(error, stack);
},
);
}