code: @Override
    @SuppressWarnings("checkstyle:illegalcatch") // Catch throwable to feed it to error handler
    public void run() {
  
      LOG.log(Level.FINE, "REEF started with user name [{0}]", System.getProperty("user.name"));
      LOG.log(Level.FINE, "REEF started. Assertions are {0} in this process.",
              EnvironmentUtils.areAssertionsEnabled() ? "ENABLED" : "DISABLED");
  
      try {
  
        LOG.log(Level.FINEST, "Clock: start");
        this.clock.run();
        LOG.log(Level.FINEST, "Clock: exit normally: {0}", this.getLastStatus());
  
      } catch (final Throwable ex) {
        LOG.log(Level.SEVERE, "Clock: Error in main event loop", ex);
        this.errorHandler.onNext(ex);
      }
    }
docs: Launch REEF component (Driver or Evaluator).
  It is usually called from the static .run() method.
  Check the status of the run via .getLastStatus() method.