Я создаю фреймворк для использования приложения Cocoa 10.6 и более поздних версий.Обработка ошибок Objective-C
Целью рамок является разбор текстового файла.
Очевидно, есть ошибки, которые могут возникнуть, например, файл не найдено, разрешение проблемы и т.д.
Что такое правильный способ обработки ошибок в рамках и уведомить хост-приложение?
Мои мысли были:
не делать ничего, и пусть хост-приложение поймать каких-либо исключений.
Попросите приложение-хозяин зарегистрировать свой первый ответчик с фреймворком, поймать любые исключения, преобразовать их в NSError и передать их в цепочку ответчиков хост-приложения.
Есть ли какой-либо из этих вариантов? Есть ли другие варианты? Каков правильный способ справиться с этим?
Я прочитал руководства по обработке ошибок и исключений, но они не охватывают эту ситуацию и описывают обработку ошибок только в самом приложении.
Я никогда не слышал, чтобы какой-либо код пропускал NSErrors в цепочку ответчиков. (Что, если вызывающий код не имеет ничего общего с любыми NSR-ответами, например, если он находится в командной строке?) Что бы вы ни делали: не делайте этого! –
@ KurtRevis, проверьте - [NSResponder presentError:] и друзья, например, –
А, это интересно - я, должно быть, пропустил их, когда их добавили к 10.4. Я ожидал бы, что структура нижнего уровня (как в этом случае, только разбор текстового файла) передаст «NSError» своему вызывающему абоненту и пусть код UI будет иметь дело с презентацией. –