viernes, 5 de julio de 2013

ASERCIONES

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



 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