docs: public void check() throws InterruptedException, ExecutionException {
          // If a thread threw an uncaught exception, re-throw it.
          final ExecutionException executionException = getExecutionException();
          if (executionException != null) {
              throw executionException;
          }
          // If this thread or another thread has been interrupted, throw InterruptedException
          if (checkAndReturn()) {
              throw new InterruptedException();
          }
      }