Saltar al contenido principal
Documentos
Java keywordsMatrices JavaProgramación orientada a objetos en JavaJava File HandlingIntroducción a JavaConceptos básicos del lenguaje Java

Palabra clave assert en Java

La palabra clave assert en Java se utiliza con fines de depuración. Permite a los desarrolladores comprobar las suposiciones sobre su código. Las aserciones pueden activarse o desactivarse cuando se ejecuta el programa, lo que las convierte en una herramienta flexible para detectar y diagnosticar errores durante el desarrollo.

Utilización

La palabra clave assert se utiliza para crear una aserción, que es una afirmación que crees que es cierta en un punto concreto de tu código. Si la aserción es falsa, el tiempo de ejecución de Java lanzará un mensaje AssertionError. Las aserciones se suelen utilizar para validar invariantes y supuestos internos.

Syntax

assert expression;
assert expression : message;
  • expression: Una expresión booleana que esperas que sea verdadera.
  • message: Un mensaje de error opcional que se mostrará si falla la aserción.

Ejemplos

Ejemplo 1: Afirmación básica

public class AssertExample {
    public static void main(String[] args) {
        int x = 5;
        assert x > 0;
        System.out.println("Assertion passed, x is greater than 0");
    }
}

En este ejemplo, la afirmación comprueba que x es mayor que 0. Si x no fuera mayor que 0, se lanzaría un AssertionError.

Ejemplo 2: Afirmación con Mensaje

public class AssertWithMessage {
    public static void main(String[] args) {
        int y = -1;
        assert y >= 0 : "y should be non-negative";
        System.out.println("Assertion passed, y is non-negative");
    }
}

Este ejemplo incluye un mensaje con la afirmación. Si y no es mayor o igual que 0, aparecerá el mensaje "y debe ser no negativo" junto con AssertionError.

Ejemplo 3: Activación de aserciones

public class EnableAssertions {
    public static void main(String[] args) {
        int z = 10;
        assert z < 5 : "z should be less than 5";
        System.out.println("This line will not execute if assertion fails");
    }
}

Para activar las aserciones, ejecuta el programa con la bandera -ea (activar aserciones):

java -ea EnableAssertions

Si las aserciones no están activadas, la aserción se ignorará y el programa se ejecutará normalmente.

Consejos y buenas prácticas

  • Uso para Invariantes Internas: Utiliza las aserciones para comprobar invariantes internas y suposiciones dentro de tu código, no para validar entradas de usuario u otras comprobaciones externas.
  • Activar durante el desarrollo: Habilita las aserciones durante el desarrollo y las pruebas para detectar errores con antelación. Pueden desactivarse en producción por razones de rendimiento.
  • No utilizar para efectos secundarios: Evita utilizar aserciones para los efectos secundarios, ya que pueden desactivarse en tiempo de ejecución. El programa no debe depender de aserciones para realizar tareas críticas.
  • Proporciona mensajes significativos: Cuando utilices aserciones con mensajes, proporciona mensajes significativos y descriptivos para facilitar la depuración.
  • Evitar en Métodos Públicos: Evita utilizar aserciones en métodos públicos para comprobar argumentos; utiliza excepciones en su lugar.

Errores comunes

  • Afirmaciones en la producción: Existe la idea errónea de que las aserciones deben utilizarse en el código de producción. Las aserciones son principalmente una herramienta de desarrollo y, por lo general, deben desactivarse en producción para evitar problemas de rendimiento.
  • Afirmaciones vs. Excepciones: Las afirmaciones no sustituyen a las excepciones. Utiliza excepciones para la gestión de errores, especialmente para los argumentos de los métodos públicos y la validación de la entrada del usuario.
public void setAge(int age) {
    if (age < 0) {
        throw new IllegalArgumentException("Age cannot be negative");
    }
    this.age = age;
}

Aprende Java Essentials

Desarrolla tus conocimientos de Java desde la base y domina los conceptos de programación.
Empieza a aprender gratis