Apple рекомендует, чтобы исключения были зарезервированы для исключительных ситуаций.В любом случае это иногда рекомендуется в качестве программирования, но в случае Objective-C это усиливается из-за более высокой стоимости обработки исключений.
Таким образом, вы можете выбросить исключение, если хотите, и это уместно, например, запуститьнехватка памяти (ошибка копирования) является (надеюсь!) исключительной.
Тем не менее, некоторые методы программирования также рекомендуют, чтобы свойства не генерировали исключения;обычно из-за того, что что-то, похожее на присваивание obj.property = value;
, могло бы сбить с толку, если были бы сгенерированы исключения (в отличие от [obj setProperty:value]
).
Так, чтобы мы установили свойство в «ноль» для типаnil
, 0
, 0.0
, NO
и т. Д.).
Чтобы получить более подробную информацию о записи об ошибке, подробные сведения об ошибке, которые могут быть запрошены после обнаружения «нуля».По сути, это подход, используемый базовыми («Unix») системными вызовами и многими библиотечными функциями, в которых errno
устанавливается перед возвратом «нуля».