setupFlutterErrorTracking method
void
setupFlutterErrorTracking()
Installs global Flutter error handlers that forward all uncaught errors to logger.
Call this once in main() after WidgetsFlutterBinding.ensureInitialized():
void main() {
WidgetsFlutterBinding.ensureInitialized();
MyService().setupFlutterErrorTracking();
runApp(const MyApp());
}
Hooks installed:
- FlutterError.onError — Flutter framework / widget build errors.
PlatformDispatcher.instance.onError— uncaught Dart async errors.
Any previously installed handler is preserved and called first.
Implementation
void setupFlutterErrorTracking() {
final prevFlutter = FlutterError.onError;
FlutterError.onError = (FlutterErrorDetails details) {
prevFlutter?.call(details);
unawaited(
trackError(
details.exception,
stackTrace: details.stack,
message: details.exceptionAsString(),
),
);
};
final prevPlatform = PlatformDispatcher.instance.onError;
PlatformDispatcher.instance.onError = (error, stack) {
prevPlatform?.call(error, stack);
unawaited(trackError(error, stackTrace: stack, fatal: true));
return false;
};
}