code: private void handleStorageException(
        final StorageException exs, final CloudStorageRetryHandler retryHandler) throws IOException {
      boolean shouldReopen = retryHandler.handleStorageException(exs);
      if (shouldReopen) {
        // these errors aren't marked as retryable since the channel is closed;
        // but here at this higher level we can retry them.
        innerOpen();
      }
    }
docs: Handles a StorageException by reopening the channel or sleeping for a retry attempt if retry
  count is not exhausted. Throws a StorageException if all reopens/retries are exhausted, or if
  the StorageException is not reopenable/retryable.
  
  @param exs StorageException thrown by a GCS operation
  @param retryHandler Keeps track of reopens/retries performed so far on this operation
  @throws StorageException if all reopens/retries are exhausted, or if exs is not
  reopenable/retryable
  @throws IOException if a reopen operation fails