Несколько недель назад я впервые начал использовать Core Data в нетривиальном приложении. Одна из вещей, которая удивила и смутила меня, была то, как работает обработка ошибок. Чтобы привести пример, одним из первых, что я попробовал, было установить мой файл данных как «заблокированный» в Finder, чтобы убедиться, что я правильно обрабатывал объект NSError, возвращаемый по ссылке, когда я устанавливал URL файла. К моему удивлению, вместо возврата nil и установки ошибки NSE, постоянный координатор хранилища вызвал необработанное исключение из базового NSData!
В то же время кажется, что обработка ошибок в Core Data иногда не нужна. Например, я не вижу очевидной причины, по которой запрос на выборку должен был бы обрабатывать ошибки, помимо ошибок программиста (что, кстати, также вызывает исключение в моем опыте). В этих случаях я передавал NULL для указателя ссылки NSError.
Между блоками try / catch и NSError я мог бы потратить много времени на написание кода, чтобы успокоить Core Data, но я хочу быть практичным в этом, поэтому я не трачу время на код ошибки, который никогда не запустится. Имея это в виду, как вы подходите к обработке ошибок в своих приложениях? Какие ошибки вы видели в реальном мире, что вы должны обязательно учитывать?