Changed server response handling from NSException to NSError

If the server were to return something unexpected, it is often recoverable; as an NSException the app would simply crash.