handleException<T> method

void handleException<T>({
  1. required Object error,
  2. StackTrace? stackTrace,
  3. T onAuthError(
    1. ApiException
    )?,
  4. T onBadRequestError(
    1. ApiException
    )?,
  5. T onTimeoutError(
    1. ApiException
    )?,
  6. T onOtherError(
    1. Object
    )?,
})

Логирует исключение и вызывает соответствующий callback в зависимости от его типа.

error – возникшее исключение. stackTrace – стек вызовов, сопровождающий исключение (опционально). Callback-функции:

  • onAuthError – вызывается при ошибке авторизации.
  • onBadRequestError – вызывается при ошибке плохого запроса.
  • onTimeoutError – вызывается при таймауте запроса.
  • onOtherError – вызывается для других типов ошибок.

Перед выполнением callback-функций исключение передаётся в _exceptionService для логирования.

Implementation

void handleException<T>({
  required Object error,
  StackTrace? stackTrace,
  T Function(ApiException)? onAuthError,
  T Function(ApiException)? onBadRequestError,
  T Function(ApiException)? onTimeoutError,
  T Function(Object)? onOtherError,
}) {
  exceptionService.capture(error, stackTrace);

  if (error is ApiException) {
    switch (error.type) {
      case ApiExceptionType.auth:
        onAuthError?.call(error);
        break;
      case ApiExceptionType.badRequest:
        onBadRequestError?.call(error);
        break;
      case ApiExceptionType.timeout:
        onTimeoutError?.call(error);
        break;
      case ApiExceptionType.other:
        onOtherError?.call(error);
        break;
    }
  } else {
    onOtherError?.call(error);
  }
}