Lo que realmente está buscando hacer es crear una enumeración de error. Este no es un tipo que realmente maneja errores; simplemente los representa para que pueda detectarlos y comprenderlos.
En Swift 2, deberías escribir algo como esto:
enumeración MyBackendError: ErrorType {
// Ahora enumera las posibles fallas, como:
case WidgetBroken
caso ThingyMissing
}
- Si una aplicación en el presupuesto de iOS tuviera un costo de construcción de $ 50,000, ¿el precio en Android sería similar o más caro o más barato?
- ¿Hay alguien o alguna compañía que pueda desarrollar un juego para iOS basado en mi idea?
- ¿Desarrollar con Unity es mejor que desarrollar juegos de forma nativa en iOS?
- ¿Qué plataforma es la mejor para las pruebas beta de iOS (Testflight, Hockey, etc.) a gran escala?
- ¿Cómo diseñar e implementar interfaces de usuario personalizadas para aplicaciones iOS?
(En Swift 3, las únicas diferencias son que ErrorType ahora es Error, y los casos deben comenzar con una letra minúscula en lugar de una letra mayúscula).
Su código de red debe detectar condiciones de error y arrojar los errores correspondientes, como este:
func parseTwiddleResponse (json: [NSObject: AnyObject]) lanza -> WidgetTwiddle {
si json [“error”] como? Cadena == “widget_broken” {
lanzar MyBackendError.WidgetBroken
}
return WidgetTwiddle (json: json [“objeto”] como [NSObject: AnyObject])
}
Tenga en cuenta que “parseWidgetTwiddleResponse” está marcado como “tiros”. Al llamar a una función “throws”, debe marcarla con “try”:
pruebe parseWidgetTwiddleResponse (json)
En última instancia, utilizará las palabras clave “hacer” y “capturar” para detectar y manejar el error:
hacer {
let twiddle = widget.twiddle ()
// usa “twiddle”
}
atrapar MyBackendError.WidgetBroken {
widget.fix ()
}