Cuando se transfiere el código Java a ObjC, ¿cuál es la mejor manera de representar las excepciones comprobadas?

Estoy trabajando en la transferencia de una base de código Java a Cocoa / Objective-C para usar en el escritorio de Mac OS X. El código de Java tieneun montón yun montón de métodos con excepciones marcadas como:

double asNumber() throws FooException {
    ...
}

¿Cuál es la mejor manera de representar estos en Objective-C? ¿Excepciones o error de parámetros?

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

o

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

Tengo la sensación de que los errores de salida son generalmente la mejor solución para Objective-C, pero como puede ver, muchos métodos como el anterior serán bastante torpes. Y otra vez, hayun montón de estos.

Por supuesto, tenga en cuenta que ya que estos soncomprobado excepciones en Java, tendré que añadir cualquiera@try bloques oif (*outError) {...} comprueba donde se llaman estos métodos (un montón de lugares).

Recuerdo haber oído que al entrar@try Los bloques una vez fueron caros en Objective-C, son baratos en 64 bits o SL o en algún otro nuevo env (no recuerdo exactamente). No estoy en absoluto preocupado por la compatibilidad hacia atrás, así que estoyseguro Dispuesto a diseñar solo para el nuevo hotness.

Respuestas a la pregunta(6)

Su respuesta a la pregunta