Как известно, в PHP помимо стандартного класса Exception имеются также и унаследованные от них (собственно SPL-исключения). Иерархию наследования можно найти на официальном мануале. Всем PHP-кодерам советую с ней ознакомиться:

Exception
    LogicException
        BadFunctionCallException
            BadMethodCallException
        DomainException
        InvalidArgumentException
        LengthException
        OutOfRangeException
    RuntimeException
        OutOfBoundsException
        OverflowException
        RangeException
        UnderflowException
        UnexpectedValueException

Кидайте SPL-исключения, наиболее подходящие по контексту причины потенциальной ошибки или неверных входных данных. Этим вы помогаете людям, которые будут в будущем разбираться в вашем коде или использовать его.