La función assert()
te permite verificar el estado de tu programa en tiempo de ejecución y fallar si las cosas no son como deberían ser. Una de las características interesantes de assert()
es que se elimina automáticamente cuando construyes tu aplicación en modo de lanzamiento, pero si no queres que eso suceda, si queres que tu aplicación se bloquee si algo está muy mal, entonces deberías usar la función precondition()
en su lugar.
let age = -5
assert(age >= 0, "La edad de una persona no puede ser negativa."
precondition()
funciona de manera idéntica a assert()
: dale una condición para verificar junto con un mensaje opcional para imprimir si la verificación falla. En tiempo de ejecución, incluso en el modo de liberación, Swift ejecutará la verificación por vos y se bloqueará si falla.
precondition(age >= 0, "La edad de una persona no puede ser negativa.")
En ambos casos devuelve este error:
error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0).
The process has been left at the point where it was interrupted, use “thread return -x” to return to the state before expression evaluation.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?