Olá, pessoal!
Hoje vamos falar sobre Assertivas, ou Assert, no Java. É um assunto que está na SCJP 5 (ou superior) e que veio fazer diferença na vida do programador Java a partir da versão 1.4. Veremos o porquê.
A partir da versão 1.4, o recurso de Assertivas (Assert) permitirá que você teste suposições
durante o desenvolvimento sem o desgaste de escrever manipuladores para
exceções que se supõem que nunca ocorrerão, depois que o programa tiver saído da
fase de desenvolvimento e for totalmente distribuído.
Se você não quer perder tempo ou trazer impacto ao desempenho do
programa escrevendo um código de manipulação de exceções ou não deseja testes com IF/else, já que se chegar à condição else significa que a lógica anterior falhou,
então as Assertivas permitem que você
teste suas suposições durante a fase de desenvolvimento.
Assertivas funcionam de maneira bem simples sempre que você quer ter certeza de que o valor testado jamais vai ser falso,
caso contrário, um error AssertionError (que não é possível manipular) é
lançado.
assert (boolean) : string;
Entre ( ) sempre terá que haver um valor booleano e true,
caso contrário, uma exceção é lançada (AssertionError).
Por padrão, Assert vem desabilitado. Para desfrutar do recurso, é necessário ativá-lo.
01. Compilando
javac -source 1.5 classe.java
02. Habilita
java ea classe
ou
java enableassertions minhaclasse
03. Desabilita
java da classe
ou
java disableassertions classe
Regras de uso Assert
- Assertion não
pode ser usado no lugar do IF; - Assertion não
pode testar métodos públicos ou argumento digitado pelo usuário; - Não pode apresentar efeitos colaterais* no programa. Ou
seja, o seu programa deve rodar tanto com ele habilitado ou não.
Usar Assertivas capazes de causar efeitos colaterais pode levar a alguns dos bugs mais enlouquecedores e difíceis de encontrar (Kathy Sierra, 2006)
Não é objetivo de Assertivas substituir o uso IF/ELSE, tratamentos de exceções. O uso de Assertivas é no
ambiente de desenvolvimento (debug) e não de distribuição.
Na prática:
class Asert{
private static void setD(int z){
boolean b=true;
assert(z>0):" alguém alterou o valor da linha 3 ";
assert(b=false);
System.out.println(z); }
public static void main(String args[]){
setD(1);
}}
Outro exemplo:
class Assert{
//usando assertivas
public static void main(String args[]){
int taxajuros=4;
assert(taxajuros==2):"algum programador mudou o valor da int taxajuros na linha 6";
System.out.println(true);
}}
Agora basta compilar com Assert, ativar em tempo de
execução e verificar a essência desse recurso. Espero que tenham gostado e
até a próxima!!