Artigo Java Magazine 06 - Asserções no J2SE 1.4

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Garanta a qualidade do código por antecipação. Como usar comandos assert para detectar erros mais cedo no desenvolvimento.

Esse artigo faz parte da revista Java Magazine edição 06. Clique aqui para ler todos os artigos desta edição

Asserções no J2SE 1.4

Garanta a qualidade do código por antecipação

Como usar comandos assert para detectar erros mais cedo no desenvolvimento

A versão 1.4 do J2SE é realmente inovadora. Além de muitas mudanças e melhorias nas APIs (como a introdução de logging, expressões regulares e um novo pacote de I/O), foi introduzida uma mudança na linguagem em si: o uso de asserções (assertions).

Asserções são usadas para facilitar a realização de "testes de sanidade" (sanity checks) em uma aplicação. Mais precisamente, servem para testar condições que devem ser sempre verdadeiras (caso a condição seja falsa, existe um bug no código).

Sintaxe

A sintaxe de asserções em Java é muito simples. Uma asserção pode ser feita de duas maneiras:

assert expressão;

ou

assert expressão1: expressão2;

A primeira maneira é equivalente a:

if (!expressão)

   throw new AssertionError();

Ou seja, caso expressão não seja verdadeira, é gerada uma exceção (do tipo AssertionError).

Com a segunda maneira, é necessário passar, além da expressão a ser testada (expressão1), uma descrição (expressão2). O código equivalente é:

if (! expressão1 )

   throw new AssertionError(expressão2);

A expressão2 pode ser qualquer expressão Java, exceto chamadas a métodos void. Como uma asserção só é útil ao desenvolvedor (ou à equipe de suporte técnico da aplicação em produção), não é necessário que a descrição faça sentido para o usuário final.

Veja alguns exemplos de asserções:

·         assert conexao != null;

·         assert !lista.isEmpty(): "lista vazia";

·         assert a > 0: "a <= 0";

Por que a mudança na linguagem?

O leitor pode estar se perguntando por que a linguagem Java foi modificada para realizar uma tarefa que poderia ser feita com uma simples combinação if/throw? Veja alguns motivos para a mudança:

·         Facilidade de uso – é muito mais fácil usar assert do que a combinação if/throw. E quanto mais asserções existirem no código, maiores as chances de serem detectados erros em tempo de desenvolvimento;

·         Flexibilidade – o recurso de asserções pode ser habilitado ou desabilitado em tempo de execução, tanto globalmente quanto em nível de pacotes ou de classes;

·         Desempenho – caso as asserções estejam desabilitadas, o custo em desempenho é praticamente zero (ao contrário da alternativa do if/throw, onde a expressão de teste é sempre avaliada causando impacto significativo).

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?