See above for why `Exception\InvalidArgumentException`. Personally, I would make the exception message more descriptive.
```php
throw new Exception\InvalidArgumentException(sprintf(
    '$items array can not be empty in %s',
    __METHOD__
));
```

Also `@throws Exception\InvalidArgumentException` is missing in the DocBlock.