AD

¿Ya dominas lo básico? Un curso estructurado de Objective-C es la vía rápida para dar el salto.

Ver cursos de Objective-C en Udemy

Enlace de afiliado. No te cuesta nada extra.

🍎Lecciones de Objective-C
Lección 50 / 68

Limpieza con @try / @catch / @finally

En esta lección ejecutarás código de limpieza tanto si hay error como si no.

El bloque @finally se ejecuta siempre: al terminar bien y al capturar una excepción.

El código de ejemplo divide dos veces y deja ver que el mensaje de cierre aparece en ambos casos.

Fíjate en @throw [NSException exceptionWithName:reason:userInfo:]: el nombre identifica el tipo de excepción y la razón es el texto explicativo. Es la forma de lanzar una excepción propia, y contrasta con el ejemplo del sistema, donde ese texto lo generaba el propio runtime.

Hay una advertencia importante que va más allá del estilo. Bajo ARC —la gestión automática de memoria que se usa desde 2011— las excepciones pueden provocar fugas de memoria, porque el compilador no genera por defecto el código de limpieza al desenrollar la pila. Existe una opción para activarlo, con un coste en rendimiento. Esa es una razón de peso, además de la convención, para no usar excepciones en el flujo normal del programa.

La regla del ecosistema es clara: NSError para lo esperable, excepciones solo para errores de programación.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Objective-C directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)