installFlutterErrorHandlers method

void installFlutterErrorHandlers({
  1. bool remoteReportingEnabled = kReleaseMode,
  2. MeshErrorMessageResolver? messageResolver,
})

Implementation

void installFlutterErrorHandlers({
  bool remoteReportingEnabled = kReleaseMode,
  MeshErrorMessageResolver? messageResolver,
}) {
  configure(
    remoteReportingEnabled: remoteReportingEnabled,
    messageResolver: messageResolver,
  );
  if (_installed) {
    return;
  }
  _installed = true;

  final previousFlutterError = FlutterError.onError;
  FlutterError.onError = (details) {
    previousFlutterError?.call(details);
    FlutterError.presentError(details);
    unawaited(
      report(
        details.exception,
        details.stack ?? StackTrace.current,
        category: 'flutter.framework',
        fatal: true,
        message: details.context?.toDescription(),
        metadata: <String, String>{
          if (details.library?.isNotEmpty ?? false)
            'library': details.library!,
        },
      ),
    );
  };

  final previousPlatformError = PlatformDispatcher.instance.onError;
  PlatformDispatcher.instance.onError = (error, stackTrace) {
    unawaited(
      report(
        error,
        stackTrace,
        category: 'flutter.platform',
        fatal: true,
      ),
    );
    return previousPlatformError?.call(error, stackTrace) ?? true;
  };
}