La palabra clave assert en Java

Rupam Yadav 12 octubre 2023
  1. Uso de assert como condición en Java
  2. Uso de assert condition : expression en Java
  3. para verificar si la parte inalcanzable del código es realmente inalcanzable
  4. en caso de invariantes internos
La palabra clave assert en Java

En Java, puede utilizar la palabra clave assert para habilitar las aserciones. Esta función se utiliza para probar nuestras suposiciones sobre el programa. Hay dos formas en las que podemos usar aserciones en Java, y las abordaremos en este artículo.

Uso de assert como condición en Java

Una afirmación es la forma más rápida y sencilla de detectar y corregir errores en un programa. Se supone que una aserción es verdadera cuando se ejecuta. De lo contrario, arrojaría un error de afirmación si es falso.

Aquí, la condición assert es una expresión booleana.

public class JavaAssertCheck {
  public static void main(String args[]) {
    String[] names = {"John", "Mary", "David"};
    assert names.length == 2;
    System.out.println("There are " + names.length + "  names in an array");
  }
}

Producción

There are 3  names in an array

Las afirmaciones están deshabilitadas; por lo tanto, este programa se compilará y ejecutará sin mostrar ningún error. Pero si las aserciones están habilitadas y la condición es falsa, JVM inmediatamente lanza un AssertionError y detiene el programa.

Exception in thread
    "main" java.lang.AssertionError at JavaAssertCheck.main(JavaAssertCheck.java : 5)

Uso de assert condition : expression en Java

En este formato de aserción, la expresión se pasa al constructor del AssertionError si la condición se evalúa como falsa. Si las afirmaciones están habilitadas y la suposición que se muestra a continuación es falsa, entonces se muestra el AssertionError con la expresión pasada como mensaje detallado.

Este mensaje ayuda a identificar correctamente el error y corregirlo.

public class JavaAssertCheck {
  public static void main(String args[]) {
    String[] names = {"John", "Mary", "David"};
    assert names.length == 2 : "The assertion condition is false.";
    System.out.println("There are " + names.length + "  names in an array");
  }
}

Producción

Exception in thread "main" java.lang.AssertionError: The assertion condition is false.
	at JavaAssertCheck.main(JavaAssertCheck.java:5)

Aquí, muestra ciertas condiciones cuando podemos utilizar el concepto de aserción en Java.

para verificar si la parte inalcanzable del código es realmente inalcanzable

public void unReachableCode() {
  System.out.println("Unreachable Code");
  return;
  assert true;
}

Si coloca una suposición en cualquier ubicación en la que pensó que no se debería alcanzar el flujo, esta función generará un error al eliminar la declaración inalcanzable.

en caso de invariantes internos

Antes de que las afirmaciones estuvieran disponibles, muchos programadores usaban comentarios para documentar sus suposiciones sobre el programa. Como se muestra a continuación en la declaración if de múltiples vías, es posible que deseemos escribir algo que explique nuestra suposición sobre el caso else.

public class JavaAssertCheck {
  public static void main(String args[]) {
    int n = 37;
    if (n % 3 == 0)
      System.out.println("n % 3 == 0");
    else if (n % 3 == 1)
      System.out.println("n % 3 == 1");
    else
      assert n % 3 == 2 : "Assumption is false. " + n;
  }
}

Las afirmaciones no deben usarse en métodos públicos para verificar los argumentos pasados ​​porque el usuario puede darlos por sí mismo; por lo tanto, puede fallar y dar lugar a un AsssertionError. NO use aserciones para administrar la tarea que su aplicación requiere para funcionar correctamente. Un ejemplo es eliminar elementos nulos de una lista.

Como regla general, la expresión contenida en una afirmación debe estar libre de efectos secundarios.

Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn