providerDidFail method

  1. @override
  2. @mustCallSuper
void providerDidFail(
  1. ProviderObserverContext context,
  2. Object error,
  3. StackTrace stackTrace
)

A provider emitted an error, be it by throwing during initialization or by having a Future/Stream emit an error

Implementation

@override
@mustCallSuper
void providerDidFail(
  ProviderObserverContext context,
  Object error,
  StackTrace stackTrace,
) {
  super.providerDidFail(context, error, stackTrace);
  if (!settings.enabled || !settings.printProviderFailed) return;
  final accepted = settings.providerFilter?.call(context.provider) ?? true;
  if (!accepted) return;

  try {
    final filtered = settings.didFailFilter?.call(error) ?? true;
    if (!filtered) return;
  } catch (_) {
    return;
  }

  _talker.logCustom(
    RiverpodFailLog(
      provider: context.provider,
      providerError: error,
      providerStackTrace: stackTrace,
      settings: settings,
    ),
  );
}