We throw exceptions elsewhere for invalid arguments (`$keys` parameter for `MongoCollection::group()`). Exceptions are not all for run-time issues -- that's why we have separate RuntimeException and LogicException (e.g. InvalidArgumentException) base classes in SPL.