public V get(K key) {
    V value = getNullable(key);
    if (value == null) {
      throw new IllegalStateException("No cache entry found for key: " + key);
    }
    return value;
  }
@Test
  public void get_throws_exception_if_not_exists() {
    when(loader.load("foo")).thenReturn("bar");
    assertThat(cache.get("foo")).isEqualTo("bar");
    assertThat(cache.get("foo")).isEqualTo("bar");
    verify(loader, times(1)).load("foo");

    assertThatThrownBy(() -> cache.get("not_exists"))
      .isInstanceOf(IllegalStateException.class)
      .hasMessage("No cache entry found for key: not_exists");
  }