public function checkCommandOptions()
    {
        foreach ($this->commandOptions as $option) {
            if ($option->isFlagOption()) {
                $parameters = $this->flagOptions;
            } else {
                $parameters = $this->options;
            }
            $option->addParameters($parameters);

            if ($option->isValueRequired() && $option->hasBeenProvided() && !$option->getValue()) {
                if ($option->isFlagOption()) {
                    $message = "Option '-{$option->getName()}' requires a value, which is not provided.";
                } else {
                    $message = "Option '--{$option->getName()}' requires a value, which is not provided.";
                }
                throw new \Parable\Console\Exception($message);
            }
        }
    }