При переносе кода Java в ObjC, как лучше всего представлять проверенные исключения?

Я работаю над переносом кодовой базы Java на Cocoa / Objective-C для использования на настольном Mac OS X. Код Java имеетlots а такжеlots методов с проверенными исключениями, такими как:

double asNumber() throws FooException {
    ...
}

Какой лучший способ представить их в Objective-C? Исключения или выходные параметры ошибки?

- (CGFloat)asNumber { 
    ... // possibly [FooException raise:format:];
}

или же

- (CGFloat)asNumberError:(NSError **)outError {
    ...
}

У меня есть ощущение, что аут-ошибки, как правило, являются лучшим решением для Objective-C, но, как вы можете видеть ... многие методы, подобные приведенному выше, будут выглядеть довольно неловко. И снова естьlots из этих.

Конечно, имейте в виду, что, поскольку ониchecked исключения в Java, мне нужно будет добавить либо@try блоки илиif (*outError) {...} проверяет, где вызваны эти методы (lots мест).

Я помню, слышал, что при входе@try Когда-то блоки были в Objective-C дорогими, они дешевы в 64-битной или SL-версии или какой-то другой новой среде (точно не помню). Меня совсем не беспокоит обратная совместимость, поэтому яdefinitely готовый дизайн только для новой жары.

Ответы на вопрос(6)

Ваш ответ на вопрос