Java afirmar

Java afirmar
La afirmación en Java es una declaración basada en la palabra reservada, afirma, tener una expresión booleana y terminar con un punto y coma. Sucede que ciertas condiciones en un programa pueden evitar que funcione correctamente. Las verificaciones de la declaración de afirmación si dichas condiciones existen en un programa.

Se espera que la afirmación se use en un programa donde el programador sospecha que tal condición puede existir. Si se usa la declaración de afirmación y la condición no ocurre erróneamente, entonces el programa continuará sin ningún problema. Si la condición ocurre mal, entonces se informa un mensaje de error. Tal comprobación implica una expresión booleana. Por supuesto, la codificación de afirmación no necesariamente debe involucrar la palabra reservada de afirmación. Hay muchos buenos programas que codifican la afirmación sin la palabra reservada. Sin embargo, el uso de la palabra reservada afirmar presenta una característica particular en la programación, lo que hace que el programa sea más constructivo.

Considere el siguiente segmento de código:

Entero en = nulo;
Si (en != nulo)
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones
demás
Sistema.afuera.println ("La prueba falló.");

Actualmente, el valor de "in" es nulo, pero puede ser cualquier entero. El IF-bock se ejecutará si no es nulo, lo que debe considerarse bueno. Si es nulo (falso), se ejecutará la parte más de la declaración de compuesto if, informando el problema.

Ahora, una declaración de afirmación puede reemplazar la mayoría de las partes de la declaración de compuesto IF. Este es un uso clásico de la declaración de afirmación. Otro uso clásico es verificar si no se alcanzó el límite del resultado de un cálculo, ya que presenta la siguiente descripción:

La velocidad de un objeto en movimiento está dada por,

S = D/T

Donde D es la distancia, t es el tiempo que se toma, y ​​s es el resultado (velocidad). Se puede desear que la velocidad del objeto permanezca por debajo de la velocidad del sonido y, por lo tanto, no cause ondas de choque. En este caso, la declaración de afirmación se puede usar para afirmar que la velocidad está por debajo de la velocidad del sonido, que es 343 m/s.

Un código de programa para este problema, sin la declaración de afirmación, puede ser el siguiente:

doble d = 15, t = 3, s;
s = d / t;
Si (s < 343)
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones
demás
Sistema.afuera.println ("La prueba falló.");

Sintaxis de afirmación en Java

En Java, las sintaxis de afirmación están en dos formas. Ellos son:

afirmar la expresión1;
y
afirmar expresión1: expresión2;

Para la primera opción (declaración), Expression1 es una expresión booleana. Nota: es igual a, en una expresión booleana, es ==, porque, en la computación, = significa asignación mientras == significa igualdad. Para la segunda opción (declaración), Expression1 sigue siendo una expresión booleana; Pero la expresión2 da como resultado un valor, que puede o no ser booleano (verdadero o falso). Sin embargo, el valor no debe ser nulo. El propósito de Expression2 es para enviar mensajes el error al programador o al usuario. En esta segunda opción, el colon separa las dos expresiones. El colon no se aplica a la primera opción.

O la declaración de afirmación en última instancia significa verdadero o falso debido a la expresión booleana. Si es cierto, el programa continúa como se esperaba. Si es falso, entonces se debe informar el error.

afirmar expresión1
Validación

El código de ejemplo para la validación anterior se repite aquí para referencia rápida (visual):

Entero en = nulo;
Si (en != nulo)
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones
demás
Sistema.afuera.println ("La prueba falló.");

"Afirmar Expression1" se puede usar para este código de la siguiente manera:

Entero en = nulo;
afirmar en != nulo;
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones

Si la afirmación está habilitada para el programa, y ​​si la afirmación afirma a False, como para esta codificación particular, entonces las declaraciones debajo de la declaración de afirmación no se ejecutarán; y la máquina virtual Java (OS) emitirá un mensaje de error. Si la afirmación no está habilitada para el programa, las declaraciones debajo de la declaración de afirmación se ejecutarán, a pesar de ser falso. Vea cómo habilitar la afirmación para un programa a continuación.

Para esta codificación de afirmación, el programador permite que el JVM se ocupe de la mensajería de error por completo debido a la ausencia de expresión2.

Evitando el alcance del límite

El código de ejemplo para evitar el alcance del límite anterior se repite aquí para referencia rápida (visual):

doble d = 15, t = 3, s;
s = d / t;
Si (s < 343)
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones
demás
Sistema.afuera.println ("La prueba falló.");

"Afirmar Expression1" se puede usar para este código de la siguiente manera:

doble d = 15, t = 3, s;
s = d / t;
afirmar s < 343;
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones

Si la afirmación está habilitada para el programa, entonces para esta codificación en particular, las declaraciones debajo de la declaración de afirmación se ejecutarán, y la máquina virtual Java (OS) no emitirá un mensaje de error; Dado que el resultado de 5 es inferior a 343. Si la afirmación no está habilitada, las declaraciones debajo de la declaración de afirmación aún se ejecutarán porque se ignorarán incluso si es falsa. Vea cómo habilitar la afirmación para un programa a continuación.

Para esta codificación de afirmación, el programador todavía permite que el JVM lidie por completo con mensajes de error; Debido a la ausencia de expresión2.

Expresión2
Validación

El código de ejemplo para la validación anterior se repite aquí para referencia rápida (visual):

Entero en = nulo;
Si (en != nulo)
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones
demás
Sistema.afuera.println ("La prueba falló.");

Expression2 es para informes de errores. La parte más de esta instrucción IF-compuesto es para informes de errores. Un uso correspondiente de la segunda declaración de afirmación de opción, para esta codificación, puede ser el siguiente:

Entero en = nulo;
afirmar en != nulo: in;
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones

Si la afirmación está habilitada para el programa, entonces para esta codificación en particular, las declaraciones debajo de la declaración de afirmación no se ejecutarán, y la máquina virtual Java (OS) emitirá un mensaje de error. Esta vez, el mensaje de error usará el valor de la variable, en. Si la afirmación no está habilitada, entonces las declaraciones debajo de la declaración de afirmación se ejecutarán, a pesar de que la declaración de afirmación da como resultado falso. Vea cómo habilitar la afirmación para un programa a continuación.

Para esta codificación de afirmación, el programador influye en el JVM en su trato con la mensajería de errores debido a la presencia de expresión2 (in): consulte los detalles a continuación.

Evitando el alcance del límite

El código de ejemplo para evitar el alcance del límite anterior se repite aquí para referencia rápida (visual):

doble d = 15, t = 3, s;
s = d / t;
Si (s < 343)
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones
demás
Sistema.afuera.println ("La prueba falló.");

Expression2 es para informes de errores. La parte más de esta instrucción IF-compuesto es para informes de errores. Un uso correspondiente de la segunda declaración de afirmación de opción, para esta codificación, puede ser el siguiente:

doble d = 15, t = 3, s;
s = d / t;
afirmar s < 343 : s;
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones

Si la afirmación está habilitada para el programa, entonces para esta codificación en particular, las declaraciones debajo de la declaración de afirmación se ejecutarán, y la máquina virtual Java (OS) no emitirá un mensaje de error; Dado que el resultado de 5 es inferior a 343. Si el resultado (valor) de S es igual o superior a 343, entonces el mensaje de error implicará el valor de S. Si la afirmación no está habilitada, las declaraciones debajo de la declaración de afirmación aún se ejecutarán porque se ignorarán incluso si dan como resultado falsos. Vea cómo habilitar la afirmación para un programa a continuación.

Para esta codificación de afirmación, el programador influye en el JVM en su trato con la mensajería de error debido a la expresión2 (s): consulte los detalles a continuación.

Habilitando la afirmación

Si un programa tiene codificación de afirmación, la declaración de afirmación solo será efectiva para respetar la declaración de afirmación si el programa está habilitado. Habilitar la declaración de afirmación se realiza después de que el programa Java se haya compilado a ByTecode. Esto se hace en la línea de comandos al ejecutar el programa. Se realiza incluyendo el switch -ENABLEASSERTIONS. Con interruptores en la línea de comando, el - no significa "llevar"; Es un guión (bala).

El uso del conmutador funciona solo para la ejecución del programa. Si no se usa el conmutador, la próxima vez que se llame al programa, la ejecución ignorará la declaración de afirmación.

En esta sección, solo se abordará el código para la validación. El código de validación con la primera opción afirmar la declaración es:

Entero en = nulo;
afirmar en != nulo;
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones

Suponga que este está en el método principal () de la clase y el archivo principal, llamado THECLASS. El archivo normalmente se compilará con el comando:

javac theclass.Java

La compilación debe pasar con éxito. Con el interruptor, el programa de Bytecode resultante, THECLASS.clase, luego se ejecutará en la línea de comando con,

Java -ENABLEASSERTIONS THECLASS

El informe (salida) será:

Excepción en el hilo "principal" Java.lang.Afirmaciónerror
en el theclass.principal (.Java: 6)

Tenga en cuenta que no se menciona el valor, nulo, para la variable, "in" en la salida. Con esto, las declaraciones debajo de la declaración de afirmación en el programa no se ejecutan.

El código de validación con la segunda opción afirmar la declaración, que tiene ": In" es:

Entero en = nulo;
afirmar en != nulo: in;
Sistema.afuera.println ("Haz esto.");
// Otras declaraciones

Suponga que este está en el método principal () de la clase y el archivo principal, llamado THECLASS. El archivo se compilará con el comando:

javac theclass.Java

La compilación debe pasar con éxito. Con el interruptor, el programa de Bytecode resultante, THECLASS.clase, se ejecutará en la línea de comando con,

Java -ENABLEASSERTIONS THECLASS

El informe (salida) será:

Excepción en el hilo "principal" Java.lang.AssertionError: NULL
en el theclass.principal (.Java: 6)

Tenga en cuenta que se menciona el valor, nulo, para la variable, "in" en la salida, como ": nulo" en la primera línea de salida. Con esto, las declaraciones debajo de la declaración de afirmación en el programa aún no se ejecutan debido a la habilitación de cualquier declaración de afirmación en el programa. Si el switch, -ENABLEASSERTIONS, se omite en la línea de comando, cualquier (o todas) afirmar las declaraciones en el programa se ignorarán. El código a continuación aún se ejecutará, incluso si las declaraciones de afirmación (expresiones booleanas) son falsas.

Conclusión

La afirmación en Java es una declaración basada en la palabra reservada, afirma, tener una expresión booleana y terminar con un punto y coma. Sucede que ciertas condiciones en un programa pueden evitar que funcione correctamente. Las verificaciones de la declaración de afirmación si dichas condiciones existen en un programa.

Buenos ejemplos para usar la declaración Afirmar están en validación y para verificar si el resultado de un cálculo no cruza un límite. Hay dos formas de la declaración Afirmar: una que no ayuda en el mensaje de error y el otro que ayuda en el mensaje de error. Una afirmación en Java está habilitada en la línea de comandos, para el código de bytecode compilado, con el conmutador, -enableassertions.