@Contract("_, !null -> !null")
  private @Nullable <T> T executeAndCatch(@NotNull Throwable2Computable<? extends T, IOException, StorageException> computable,
                                          @Nullable T defaultValue) {
    try {
      return computable.compute();
    }
    catch (IOException | UncheckedIOException | StorageException | CorruptedDataException e) {
      myIndexStorageBackend.markCorrupted();
      myErrorHandler.handleError(VcsLogErrorHandler.Source.Index, e);
    }
    catch (RuntimeException e) {
      processRuntimeException(e);
    }
    return defaultValue;
  }
@Contract("_, !null -> !null")
  private @Nullable <T> T executeAndCatch(@NotNull Throwable2Computable<? extends T, IOException, StorageException> computable,
                                          @Nullable T defaultValue)