Files
friflex_flutter_starter/lib/runner/errors_handlers.dart

36 lines
1.2 KiB
Dart
Raw Permalink Normal View History

2025-01-21 14:24:31 +03:00
part of 'app_runner.dart';
/// Метод инициализации обработчиков ошибок
void _initErrorHandlers(IDebugService debugService) {
// Обработка ошибок в приложении
FlutterError.onError = (details) {
_showErrorScreen(details.exception, details.stack);
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(error, stack);
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(Object error, StackTrace? stackTrace) {
WidgetsBinding.instance.addPostFrameCallback((_) async {
await AppRouter.rootNavigatorKey.currentState?.push(
2025-01-21 14:24:31 +03:00
MaterialPageRoute(
builder: (_) => ErrorScreen(error: error, stackTrace: stackTrace),
2025-01-21 14:24:31 +03:00
),
);
});
}