disableOverflowError function

void disableOverflowError({
  1. Logger? logger,
  2. Level? level,
})

Note: Overflow error is not always raised (Yet to find reason for that).

Implementation

void disableOverflowError({
  Logger? logger,
  Level? level,
}) {
  // FlutterError.onError != FlutterError.presentError in Widget Test
  // See test/error/disable_overflow_error_test.dart
  FlutterExceptionHandler? originalOnError = FlutterError.onError;
  FlutterError.onError = (details) {
    bool isOverflowError = false;
    final exception = details.exception;
    if (exception is FlutterError) {
      isOverflowError = exception.diagnostics.any(
        (e) => e.value.toString().contains('A RenderFlex overflowed by'),
      );
    }
    if (isOverflowError) {
      level ??= Level.INFO;
      logger ??= packageLogger;
      logger!.log(level!, 'A RenderFlex overflowed');
    } else if (originalOnError != null) {
      originalOnError(details);
    }
  };
}