protected function parse()
    {
        // Try to parse and fail on any exception ...
        try {
            $this->getFlags()->parse();

            // Extract parsed arguments
            $this
                ->longs($this->getFlags()->longs())
                ->shorts($this->getFlags()->shorts())
                ->arguments($this->getFlags()->args());
        } catch (InvalidFlagParamException $e) {
            $this->showHelp($e->getMessage());
        } catch (InvalidFlagTypeException $e) {
            $this->showHelp($e->getMessage());
        }

        return $this;
    }