Buscar

07-Asserções

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Asserções
Profa. Dra. Ieda Hidalgo
E-mail: iedahidalgo@ft.unicamp.br
Definição
Asserção é um mecanismo que permite ao
programador testar hipóteses (que ele assume
que não irão acontecer uma vez que o
programa esteja completo) durante o
desenvolvimento de um sistema.
Vantagens do uso de Asserções
Deixam o código mais claro e menor.
Ficam inativas a não ser que sejam especificamente
habilitadas.
Não causam impacto quando o programa é entregue.
Não impõem que o código da hipótese testada seja
removido manualmente na versão final do sistema.
Exemplo
private void metodo(int num) 
{
// gera um AssertionError caso o teste não seja verdadeiro
assert (num>=0); 
// resto do codigo supondo que num é positivo
}
Mecanismo de Asserções
1. Faz-se a asserção de que alguma hipótese é
verdadeira.
2. Em caso positivo, o código continua
normalmente.
3. Em caso negativo, a execução é
interrompida e gera um AssertionError (que
não deve ser tratado no código).
Detalhes sobre a Causa do AssertionError
Para mais informação sobre a causa do AssertionError,
pode-se utilizar uma segunda cláusula, separada por
“:”, cujo objetivo é apresentar detalhes sobre o
AssertionError:
private void método(int x, int y) 
{
assert (y > x): "y vale " + y + " e x vale " + x;
// mais código assumindo que y é maior do que x
}
Asserções x Tratamento de Exceções
Asserções são utilizadas para a depuração do
programa. Ela evidencia erros de programação que
provocam a interrupção da execução quando
situações ditas "impossíveis" pelos
desenvolvedores são atingidas.
Tratamento de exceções desvia o fluxo de
execução para uma rotina de tratamento. Nela, o
programa pode tentar recuperar-se da situação de
erro e prosseguir com a execução do sistema.
Dicas para Utilização de Asserções
Não utilize asserções para validar argumentos de um método
público, uma vez que você não tem controle sobre como ele
será chamado. Neste caso, o próprio método deve validar os
argumentos que está recebendo, pois as asserções podem
estar desabilitadas durante a execução.
Não utilize expressões de teste que alteram o estado de um
objeto. Como não é garantido que a expressão será
executada, não é recomendado que seu código tenha um
comportamento diferente dependendo das asserções
estarem habilitadas ou não.
Utilize asserções em métodos privados para checar casos
que não devem acontecer durante a execução do programa.

Outros materiais