Если ваше приложение делает что-то действительно неустранимое, есть вероятность, что оно будет прервано операционной системой, и у вас не будет возможности узнать об этом.Подумайте о доступе к освобожденному объекту.
Если вы рассматриваете ошибки или непредвиденные условия, которые может обнаружить ваша программа, то это во многом зависит от того, о чем идет речь.Но общая политика такова:
информирование пользователя о том, что произошла ошибка;
попытка восстановить как можно больше;
изящно завершает работу приложения.
1 и 3 явно исключают оба параметра NSAssert
и exit()
, которые вы упомянули.Бросок также не помогает, потому что если вы выбросите исключение и не обработаете его, ваша программа будет прервана внезапно.
Изящный выход означает выход, как в обычном случае, когда все методы dealloc вызываются, всефайлы закрыты, все ресурсы освобождены.И, возможно, хранить достаточно информации о рабочем состоянии программы, чтобы ее можно было восстановить при следующем запуске.