A palavra-chave assert em Java
- 
          
            Usando 
assertcomo uma condição em Java - 
          
            Usando 
assert condition : expressionem Java - para verificar se a parte inacessível do código é realmente inacessível
 - em caso de invariantes internos
 
Em Java, você pode utilizar a palavra-chave assert para habilitar asserções. Esta função é usada para testar nossas suposições sobre o programa. Existem duas maneiras de usar asserções em Java e vamos abordá-las neste artigo.
Usando assert como uma condição em Java
    
Uma declaração é a maneira mais rápida e fácil de detectar e corrigir bugs em um programa. Uma asserção é considerada verdadeira quando executada. Caso contrário, ele geraria um erro de asserção se fosse falso.
Aqui, a condição assert é uma expressão 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");
  }
}
Resultado
There are 3 names in an array
As asserções estão desabilitadas; portanto, este programa será compilado e executado sem mostrar nenhum erro. Mas se as asserções estiverem ativadas e a condição for falsa, a JVM lança imediatamente um AssertionError e para o programa.
Exception in thread
    "main" java.lang.AssertionError at JavaAssertCheck.main(JavaAssertCheck.java : 5)
Usando assert condition : expression em Java
    
Neste formato de asserção, a expressão é passada para o construtor do AssertionError se a condição for avaliada como falsa. Se as asserções estiverem habilitadas e a suposição conforme mostrado abaixo for falsa, então o AssertionError com a expressão passada como uma mensagem detalhada é mostrado.
Esta mensagem ajuda a identificar corretamente o erro e a corrigi-lo.
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");
  }
}
Resultado
Exception in thread "main" java.lang.AssertionError
    : The assertion condition is false.at JavaAssertCheck.main(JavaAssertCheck.java : 5)
Aqui, ele mostra certas condições quando podemos utilizar o conceito de asserção em Java.
para verificar se a parte inacessível do código é realmente inacessível
public void unReachableCode() {
  System.out.println("Unreachable Code");
  return;
  assert true;
}
Se você colocar uma suposição em qualquer local que achou que o fluxo não deveria ser alcançado, esta função irá exibir um erro ao remover a instrução inacessível.
em caso de invariantes internos
Antes que as afirmações estivessem disponíveis, muitos programadores usavam comentários para documentar suas suposições sobre o programa. Conforme mostrado abaixo na instrução if multifacetada, podemos querer escrever algo explicando nossa suposição sobre o 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;
  }
}
As asserções não devem ser usadas em métodos públicos para verificar os argumentos passados porque o usuário pode fornecê-los por conta própria; assim, pode falhar e levar a um AsssertionError. NÃO use asserções para gerenciar a tarefa que seu aplicativo requer para funcionar corretamente. Um exemplo é a remoção de elementos nulos de uma lista.
Como regra, a expressão contida em uma afirmação deve estar livre de efeitos colaterais.
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