Back-End

21 jul, 2010

Boas práticas de programação Assert Java

Publicidade

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!!