Files
friflex_flutter_starter/lib/runner/errors_handlers.dart

36 lines
1.0 KiB
Dart
Raw Normal View History

2025-01-21 14:24:31 +03:00
part of 'app_runner.dart';
/// Метод инициализации обработчиков ошибок
void _initErrorHandlers(IDebugService debugService) {
// Обработка ошибок в приложении
FlutterError.onError = (details) {
_showErrorScreen();
debugService.logError(
() => 'FlutterError.onError: ${details.exceptionAsString()}',
error: details.exception,
stackTrace: details.stack,
);
2025-01-21 14:24:31 +03:00
};
// Обработка асинхронных ошибок в приложении
PlatformDispatcher.instance.onError = (error, stack) {
_showErrorScreen();
debugService.logError(
() => 'PlatformDispatcher.instance.onError',
error: error,
stackTrace: stack,
);
2025-01-21 14:24:31 +03:00
return true;
};
}
2025-01-21 14:24:31 +03:00
/// Метод для показа экрана ошибки
void _showErrorScreen() {
WidgetsBinding.instance.addPostFrameCallback((_) {
AppRouter.rootNavigatorKey.currentState?.push(
MaterialPageRoute(
builder: (_) => const ErrorScreen(),
),
);
});
}