Saltar al contenido →

Never

El tipo Never lleva con nosotros desde la versión 3 de Swift pero ha pasado bastante desapercibido hasta ahora, que con la llega de Combine se ha visto como en algunos ejemplos el subject usaba Never para indicar el error.

Pero qué es Never, para qué se usa y cómo se usa es algo que verás en este artículo.

¿Qué es Never?

Es una enumeración, por lo menos así está declarado en la documentación y según Apple

¿Para qué se usa Never?

Pues según Apple debemos usar Never como…

Use Never as the return type when declaring a closure, function, or method that unconditionally throws an error, traps, or otherwise does not terminate.

Vamos, que cuando declaremos una función con un tipo de devolución Never estamos indicando que el flujo del programa no va a continuar desde el momento en que llamamos a esa función a no ser que dicha función lance una excepción, en cuyo caso y siempre y cuando capturemos la excepción, el flujo del programa seguirá de la forma indicada.

Se puede usar una función que devuelve Never para el tratamiento de los fatalError que tengamos en nuestra app, como por ejemplo la imposibilidad de iniciar el stack de Core Data, o cualquier servicio/operación que sea necesario para que nuestra app pueda funcionar.

¿Cómo se usa Never?

Vamos a verlo en dos ejemplo, en el primero haremos un uso normal y en el segundo lanzaremos una excepción para ver como en este caso se recupera el control del programa.

Y la salida que tenemos es…

Y ahora veamos como se comporta en el caso de lanzarse una excepción desde la función que devuelve el tipo Never. La excepción se lanza de forma aleatoria así que quizá tengas que ejecutar el script un par de veces.

En caso de producirse la exceptión tendremos una salida como esta…

Never y guard

Si hacemos una llamada a una función que devuelve el tipo Never desde un bucle guard nos podemos ahorrar el return del final

Y hasta aquí el artículo sobre Never.

Publicado en Swift