ASERCIONES
Las aserciones se utilizan durante la fase de desarrollo y
depuración de una aplicación para verificar ciertas suposiciones asumidas por
el programa, evitando la utilización innecesaria de instrucciones println o
de captura de excepciones.
El aspecto mas
positivo de las aserciones está en que solamente se pueden habilitar durante la fase de
desarrollo y depuración de la aplicación. Al realizar el despliegue de la misma
todas las aserciones serán ignoradas sin necesidad de introducir cambios en el
código, dejando atrás cualquier tipo de sobrecarga que estas instrucciones pudieran
producir.
Las aserciones se utilizan durante la fase de desarrollo y
depuración de una aplicación para verificar ciertas suposiciones asumidas por
el programa, evitando la utilización innecesaria de instrucciones println o
de captura de excepciones.
El aspecto mas
positivo de las aserciones está en que solamente se pueden habilitar durante la fase de
desarrollo y depuración de la aplicación. Al realizar el despliegue de la misma
todas las aserciones serán ignoradas sin necesidad de introducir cambios en el
código, dejando atrás cualquier tipo de sobrecarga que estas instrucciones pudieran
producir.
IMPLEMENTACION DE LAS INSERCIONES
Aserciones en el diseño por contrato
Las aserciones pueden ser una forma de documentación: pueden
describir el estado en que el código empieza su ejecución (precondición), y el estado que el código
espera alcanzar cuando finalice (postcondición); asimismo pueden servir de
especificación para los invariantes de clase. En Eiffel,
Aserciones en tiempo de ejecución
Una aserción puede ser utilizada para verificar que una
suposición hecha por el programador durante la implementación del programa
sigue siendo válida durante la ejecución del programa.
Aserciones durante el ciclo de desarrollo
Durante el ciclo de desarrollo, el programador normalmente
ejecuta su programa con las aserciones activadas. Cuando una aserción resulta
falsa y se produce el correspondiente error, el programador automáticamente
recibe un avis
Aserciones estáticas
Las aserciones que son comprobadas en tiempo de compilación
reciben el nombre de aserciones estáticas. Este tipo de aserciones resultan
particularmente útiles en la meta programación de plantillas
Desactivación de las aserciones
Las aserciones suelen ser implementadas de modo que puedan
ser activadas o desactivadas, normalmente en el conjunto del programa. Sin
embargo, los lenguajes que distinguen entre distintos tipos de aserciones –
p.ej. pre y post condiciones – suelen permitir activarlas o desactivarlas de
forma independiente
SEMEJANZA Y DIFERENCIA DE LAS ASERCIONES CON LAS ECEPCIONES
Las excepciones no sólo son utilizadas en Java. Muchos
lenguajes de programación las utilizan como un mecanismo para indicarle al
programa que debe hacerse en caso de
producirse un error inesperado en tiempo de ejecución, como por ejemplo
invocar un método con parámetros
inválidos, división entre cero, etc.
Las aserciones, por otro lado, permiten realizar ciertas
verificaciones sobre la lógica del programa. Por ejemplo, si en algún punto
determinado de la aplicación se presume
que el valor de una variable booleana pudiera ser true, la aserción
permitiría determinar si esto es cierto. Por lo general, las aserciones son
utilizadas dentro de un método para validar la lógica del mismo.
- Excepciones en Java
Las excepciones son
objetos
De la clase
Exception, que hereda de Throwable
En Java puede haber
dos tipos de excepciones:
Efectos de una excepción
El método lanzado
acaba prematuramente
No se devuelve ningún
valor de retorno
El control no vuelve
al punto de llamada del cliente
Un cliente puede
capturar (“catch”) una excepción
- Aserciones
Usadas para
comprobaciones de consistencia interna
P.ej. sobre el estado
de un objeto
Normalmente se usan
durante el desarrollo y se eliminan en la versión de producto
del mecanismo de excepciones Separación del tratamiento de errores del resto del código del programa
del mecanismo de excepciones Separación del tratamiento de errores del resto del código del programa
Flujo del programa más sencillo
Evita manejos de
códigos de error
- Ventajas
del mecanismo de excepciones
Agrupamiento y
definición de tipos de errores como clases
Jerarquías de
excepciones
Tratar errores a
diferentes niveles de especificidad
No hay comentarios:
Publicar un comentario