Antes de nada, se conoce como aserto a una instrucción que contiene una expresión booleana de la que el programador sabe que en un momento dado de la ejecución del programa se debe evaluar a verdadero. Todos aquellos que hayan visto alguna vez la verificación formal de algoritmos saben de que estamos hablando. Ejemplos de asertos son las precondiciones, postcondiciones y los invariantes. Volviendo a la definición, observamos que verificando que esta expresion booleana, el aserto, es cierta, el sistema comprueba que el programa se ejecuta dentro de los límites que el programador le marca y ademas reduce la posibilidad de errores.
Los asertos no son nada nuevo en programación, de hecho los asertos ya estaban previstos en la especificación inicial de oak (el lenguaje precursor de Java) pero fueron desestimados por que no había tiempo suficiente para hacer una implementación satisfactoria.
UsoPara declarar un aserto en una clase Java, se usa la palabra clave assert que tiene la siguiente sintáxis:
assert Expresion1; assert Expresión1:Expresión2;
En cualquiera de los dos casos Expresión1 tiene que ser una expresión booleana o se producirá un error de compilación. Cuando se evalúa un aserto que solo tenga Expresión1, se comprueba la veracidad de la expresión y si es verdadera se continúa la ejecución del programa, pero si es falsa, se lanza una excepción de tipo AssertionError. Si el aserto contiene además una Expresión2 y Expresión1 es falsa, se evalúa Expresion2 y se le pasa como parámetro al constructor del AssertionError (Si Expresion1 se evalúa como cierto, la segunda expresión no se evalúa).
CompilaciónPara que el compilador del JDK (javac) entienda la nueva instrucción, se le debe pasar como parámetro -source 1.4, por ejemplo:
javac -source 1.4 Aserto.java
Esto le indica al compilador que el código que recibe utiliza características del lenguaje aparecidas en la versión 1.4 del JDK.
Ahora bien, ¿Que ocurre con las classes ya escritas que usan assert como variable?. Pues que no compilarán, aunque si ya estan compiladas seguirán ejecutándose sin problemas en la nueva versión del JDK.
Activación/DesactivaciónLos asertos estan pensados para la comprobación de invariantes (condiciones que se cumplen siempre en un determinado trozo de código), por lo que tienen mas interés en la etapa de desarrollo. Por esto se puede desactivar y activar la comprobación de los asertos. Por defecto la comprobación de los asertos esta desactivada y se proporcionan dos opciones para el intérprete del JDK (java).
java -enableassertions (-ea), para activar la comprobación. java -disableassertions (-da), para desactivar la comprobación.
Usuarios que han visto este tema también han visto...
- Cast & Performance en Java
- Escribir en un archivo o consola con Java
- Creando un frame en Java
- Conectar Java con MySQL en NetBeans
- Comenzando a programar en Java
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.