docs: public void handleEvent(Object event) throws InvocationTargetException {
      if (!valid) {
        throw new IllegalStateException(toString() + " has been invalidated and can no longer handle events.");
      }
      try {
        method.invoke(target, event);
      } catch (IllegalAccessException e) {
        throw new AssertionError(e);
      } catch (InvocationTargetException e) {
        if (e.getCause() instanceof Error) {
          throw (Error) e.getCause();
        }
        throw e;
      }
    }