Estudos gratuitos da ER Soluções WebVer outros conteúdos grátis
ER Soluções WebEstudos · Code Complete

8.1. Programação defensiva: asserções e erros

Proteja-se de entradas inválidas; asserções para o impossível, tratamento de erro para o esperado.

Motorista defensivo protegido de outros carros, como o código protegido de dados ruins
Dirija pensando no erro dos outros.

Resumo

Perguntas-chave

responda de cabeça, depois abra
Quando usar asserção e quando tratar erro?
Asserção para condições que indicam bug no programa; tratamento de erro para situações previstas, como entrada inválida do usuário.
Por que não colocar código executável em asserções?
Porque asserções podem ser desligadas na versão final, e o código dentro delas deixaria de rodar.
Qual a diferença entre correção e robustez?
Correção é nunca retornar resultado errado (melhor nada que errado); robustez é continuar funcionando mesmo com resultados imperfeitos.

Exercícios de fixação

0/5 respondidas
1.
O usuário digita uma data inválida num formulário. O que usar?
2.
Qual o problema de assert(abrirArquivo(nome))?
3.
Um software de radioterapia recebe uma leitura de dose incoerente. O que o livro favorece nesse tipo de sistema?
4.
Um editor de texto encontra um caractere de fonte inválido ao desenhar a tela. A reação mais adequada é:
5.
Asserções são especialmente úteis para documentar e verificar:
Seu progresso fica salvo neste navegador.