Ao portar o código Java para o ObjC, qual a melhor forma de representar as exceções verificadas?

Eu estou trabalhando em portar uma base de código Java para Cocoa / Objective-C para uso em desktop Mac OS X. O código Java temgrande quantidade egrande quantidade de métodos com exceções verificadas como:

double asNumber() throws FooException {
    ...
}

Qual é a melhor maneira de representá-los em Objective-C? Exceções ou parâmetros de saída de erro?

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

ou

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

Eu tenho a sensação de que os erros de saída são geralmente a melhor solução para o Objective-C, mas como você pode ver ... muitos métodos como o acima serão de aparência estranha. E mais uma vez, existemgrande quantidade destes.

Claro que tenha em mente que, uma vez que estes sãoverificado exceções em Java, precisarei adicionar@try blocos ouif (*outError) {...} verificações sempre que esses métodos são chamados (grande quantidade de lugares).

Eu me lembro de ouvir isso enquanto entrava@try blocos já foi caro em Objective-C, é barato em 64 bits ou SL ou algum outro env novo (não me lembro exatamente). Eu não estou nada preocupado com compatibilidade retroativa, então eu estoudefinitivamente disposto a projetar apenas para o novo hotness.

questionAnswers(6)

yourAnswerToTheQuestion