Это общий вопрос об обработке возможных ошибок, при которых NSError не используется.Стиль обработки ошибок Cocoa/iOS, без NSError
Допустим, у нас есть некоторые типичные IOS/какао-код, как это:
NSXMLParser *parser = [[NSXMLParser alloc] initWithData: myData];
В документации говорится, что объект NSXMLParser будет возвращен, или «ноль, если произошла ошибка».
(Для записи, этот конкретный метод будет счастливо принять ноль для аргумента «данные», возвращая действующий экземпляр NSXMLParser.)
Я заметил, что очень многие разработчики IOS никогда не проверяют эти типы возвращаемых значений. Они предполагают, что класс init всегда работал. Мне это кажется рискованным, но я бы хотел услышать мнения опытных/укушенных разработчиков какао.
Если я использую NSAssert на возвращаемом значении, это защищает меня во время разработки, но мало для меня, когда мое приложение находится в дикой природе.
Должен ли я проверить возвращаемое значение nil и построить собственный NSError? Или сделать что-то еще?
@ Брайан, это я прошу. Как бы вы справились с этой конкретной ошибкой? – Womble
Я просто использую NSAssert, чтобы проверить, что это не ноль. если ошибка произойдет, я получу парсер nil и не сделаю никакой работы. надеюсь, это лучшее, что я могу получить. –
@Abizern, если вы указали эту строку кода, вы найдете много результатов. Подавляющее число реализаций не проверяет возвращаемое значение. Это может быть просто из-за реализации примеров/фрагментов, но я подозреваю, что общий подход тот же. Но если вы хотите поделиться своим подходом с нами, я рад слушать. – Womble