Do not use exceptions for recoverable errors.
So, yes, there is a better way. Exceptions should only be used for fatal errors. Other kinds of error handling is done via the NSError**
pattern.
CodaFi's answer (Is it a good practice to subclass from NSException for app-specific exceptions?) has more details.