Aserción (informática)
Como esta notación normalmente no es aceptada por los compiladores de los lenguajes actuales, los programadores suelen incluir aserciones mediante comentarios.En Eiffel, tales aserciones se integran en el código y son automáticamente extraídas para documentar la clase.La aserción explicita esta suposición — si contarUsuarios devuelve un valor negativo, es probable que haya un fallo en el programa.[cita requerida] Una gran ventaja de esta técnica es que cuando se produce algún error este es inmediata y directamente detectado, evitando posibles daños colaterales ocultos.Por ejemplo, las aserciones pueden ser colocadas en la cláusula default de una estructura switch en lenguajes como C, C++ y Java.Cuando una aserción resulta falsa y se produce el correspondiente error, el programador automáticamente recibe un aviso.Muchas implementaciones además detienen la ejecución del programa — esto resulta útil ya que si el programa sigue ejecutándose tras la violación de una aserción, este entra en un estado corrupto que puede hacer más difícil la localización del problema.[cita requerida] Gracias a la información proporcionada por el error de aserción (punto del código que ha provocado el fallo, quizás el stack trace o incluso todo el contexto de la aserción violada), el programador puede corregir el problema.pre y postcondiciones – suelen permitir activarlas o desactivarlas de forma independiente.Una alternativa en el caso de C o C++ es redefinir la macro assert para evaluar la expresión incluso cuando las aserciones están desactivadas.Esto es posible: el sistema operativo no garantiza que cada llamada a malloc termine con éxito, y el programa debe estar preparado para manejar el error.Esto permite al programador localizar errores de forma más sencilla, lo que a su vez hará que el usuario final pueda ejecutar el programa sin recibir mensajes de error innecesarios.