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