tryCatch<T> static method

T? tryCatch<T>(
  1. T action(), {
  2. dynamic onError(
    1. dynamic error,
    2. StackTrace stack
    )?,
  3. T? fallback,
})

Execute function with try-catch and optional error callback

Example:

final result = FSErrors.tryCatch(
  () => riskyOperation(),
  onError: (e, stack) => print('Error: $e'),
  fallback: 'default',
);

Implementation

static T? tryCatch<T>(
  T Function() action, {
  Function(dynamic error, StackTrace stack)? onError,
  T? fallback,
}) {
  try {
    return action();
  } catch (error, stack) {
    onError?.call(error, stack);
    return fallback;
  }
}