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.