docs: public void start()
      {
          try
          {
              if (!isStarted)
              {
                  isStarted = true;
                  agent.onStart();
                  isRunning = true;
              }
          }
          catch (final Throwable throwable)
          {
              errorHandler.onError(throwable);
              close();
          }
      }