code: @Nonnull private <T> T getInstance(@Nonnull Key<T> key) {
      try {
        return getInstanceInternal(key);
      } catch (UnsatisfiedDependencyException e) {
        throw e.asInjectionException(key);
      }
    }
docs: Finds an instance for the given key. Calls are guaranteed idempotent.