Основные данные - надеясь на ошибки, получая исключения - PullRequest
1 голос
/ 04 августа 2009

Я разрабатываю приложение для iPhone с использованием Core Data, и Ахев заметил, что я получаю исключения, когда я ожидаю, и появляется ошибка, вот пример:

NSError *error;

// exception here if edited attribute name todoText in modeller and generated new database with that new name in it(ie clearing the iphone), ie tring to access a field not in the database

@try {

   NSMutableArray *mutableFetchResults = [[todoListManagedObjectContext   executeFetchRequest:request error:&error] mutableCopy];

   //seems like vars declaered inside a try is only known inside it, so process here

   if (mutableFetchResults == nil) { // nil = error

      // Handle the error.

Как видно из комментариев, я не получаю сообщение об ошибке при попытке доступа к несуществующему полю .... почему бы просто не использовать для этого систему возврата ошибок?

Полагаю, мой вопрос в том, для чего существуют ошибки и исключения, и нужно ли мне проверять и то и другое, как это?

Rgds PM

1 Ответ

3 голосов
/ 04 августа 2009

Какое исключение вы получаете? Во всем Какао исключения обычно означают ошибку программиста, поэтому он предполагает, что вы передаете недопустимый параметр. Попытка получить доступ к полю, которого нет в базе данных, кажется такой ситуацией; это не ошибка «что-то пошло не так», это ошибка «вы сделали что-то не так».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...