I think exceptions is the way you are expected to do it (though I'm not 100% there's not another way). I think in this case an exception is legitimate because although it's a state we anticipate it is an invalid state for the installation of PHPCI. So a runtime exception rather than a logic exception.