Podczas przenoszenia kodu Java do ObjC, jak najlepiej reprezentować sprawdzone wyjątki?

Pracuję nad przeniesieniem kodu Java do Cocoa / Objective-C do użytku na komputerach Mac OS X. Kod Java mawiele iwiele metod ze sprawdzonymi wyjątkami, takimi jak:

double asNumber() throws FooException {
    ...
}

Jaki jest najlepszy sposób reprezentowania ich w Objective-C? Wyjątki lub parametry błędów?

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

lub

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

Mam wrażenie, że out-błędy są ogólnie lepszym rozwiązaniem dla Objective-C, ale jak widać ... wiele metod, takich jak ta powyżej, będzie dość niewygodnych. I znowu sąwiele tych.

Oczywiście pamiętaj, że tak jestsprawdzone wyjątki w Javie, muszę też dodać@try bloki lubif (*outError) {...} sprawdza gdziekolwiek te metody są nazywane (wiele miejsc).

Pamiętam, że słyszałem to podczas wchodzenia@try bloki były kiedyś drogie w Objective-C, są tanie w 64-bitowym lub SL lub innym nowym env (nie pamiętam dokładnie). Nie martwię się o kompatybilność wsteczną, więc jestemZdecydowanie chętny do projektowania tylko dla nowej gorączki.

questionAnswers(6)

yourAnswerToTheQuestion