install static method

void install({
  1. required NexoLogger logger,
  2. NexoCrashReporter? crashReporter,
})

Подключает глобальные хендлеры. Вызывайте один раз после WidgetsFlutterBinding.ensureInitialized в той же зоне, что и runApp (см. runAppInZone).

Implementation

static void install({
  required NexoLogger logger,
  NexoCrashReporter? crashReporter,
}) {
  assert(!_installed, 'NexoFlutterErrors.install: already installed');
  _installed = true;
  _logger = logger;
  _crashReporter = crashReporter;

  _previousFlutterOnError = FlutterError.onError;
  FlutterError.onError = (FlutterErrorDetails details) {
    _report(details.exception, details.stack ?? StackTrace.current);
    final prev = _previousFlutterOnError;
    if (prev != null) {
      prev(details);
    } else {
      FlutterError.presentError(details);
    }
  };

  _previousPlatformOnError = PlatformDispatcher.instance.onError;
  PlatformDispatcher.instance.onError = (Object error, StackTrace stack) {
    _report(error, stack);
    final prev = _previousPlatformOnError;
    if (prev != null) {
      return prev(error, stack);
    }
    return false;
  };
}