A palavra-chave assert em Java
-
Usando
assert
como uma condição em Java -
Usando
assert condition : expression
em 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