docs: @SuppressWarnings("PMD.AvoidCatchingThrowable")
    static String mkString(Object obj) {
      if (obj == null) {
        return "null";
      }
      try {
        return obj.toString() + " (type is " + obj.getClass() + ")";
      } catch (Throwable t) {
        return t.getClass().toString() + ": " + t.getMessage() + " (type is " + obj.getClass() + ")";
      }
    }