Módulo 13 - Quando dá errado: erros e robustez
Os três tipos de erro
8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 08/07/2026
O que você vai aprender
- Diferenciar erro de sintaxe, de execução e de lógica.
- Reconhecer com qual tipo de erro você está lidando.
- Entender por que o erro de lógica é o mais traiçoeiro.
- Associar cada tipo a como ele se manifesta.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Os três tipos de erro.
Os objetivos desta aula. Diferenciar erro de sintaxe, de execução e de lógica. Reconhecer com qual tipo de erro você está lidando. Entender por que o erro de lógica é o mais traiçoeiro. Associar cada tipo a como ele se manifesta.
Veja o essencial, parte por parte.
Três jeitos de dar errado. Erro de sintaxe: o código está mal escrito e o programa nem roda.
O erro de lógica, o mais traiçoeiro. O erro de lógica é o vilão silencioso.
Por que classificar o erro ajuda a resolver. Saber de qual tipo é o erro muda a estratégia de conserto.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
Três jeitos de dar errado
Errar faz parte de programar, e a boa notícia é que os erros se dividem em três tipos bem distintos, cada um com sua cara e seu jeito de ser caçado. O primeiro é o erro de sintaxe: você escreveu o código de um jeito que quebra as regras da linguagem, como uma frase sem verbo. Esqueceu de fechar um parêntese, digitou uma palavra-chave errada, faltou um sinal. O computador nem tenta rodar; ele avisa de cara que não entendeu e aponta mais ou menos onde. É o erro mais amigável, porque aparece antes de o programa executar e costuma vir com uma mensagem indicando o lugar.
O segundo é o erro de execução: o código está bem escrito e começa a rodar, mas em algum momento topa com uma situação que não consegue tratar e quebra no meio. É o programa que estava funcionando e de repente para com uma mensagem de erro. As causas clássicas você já encontrou pelo curso: dividir por zero, acessar uma posição que não existe na lista, buscar uma chave ausente no dicionário, tentar abrir um arquivo que não está lá. O código está correto na forma, mas os dados ou o ambiente pregaram uma peça. O terceiro tipo é o mais perigoso de todos, e merece atenção especial.
O erro de lógica, o mais traiçoeiro
O erro de lógica é o vilão silencioso. Nele, o código está perfeitamente escrito, roda do começo ao fim sem quebrar, e entrega uma resposta. O problema é que a resposta está errada, e nada avisa. O computador fez exatamente o que você mandou; só que o que você mandou não era o que você queria. Lembra do acumulador inicializado dentro do laço, que dá o preço do último item em vez da soma? Ou da ordem trocada dos argumentos, que calcula certo a conta errada? São erros de lógica. Eles não geram mensagem nenhuma, e é por isso que assustam: o programa parece funcionar, o cliente confia no número, e o prejuízo só aparece quando alguém percebe que a conta nunca fechou. Caçar erro de lógica é o trabalho mais fino do programador, e a ferramenta principal é o teste de mesa que você aprendeu no curso básico, mais os testes automatizados que conferem se a resposta bate com a esperada.
🎮 Jogo da aula
Que tipo de erro é esse?
Para cada situação, decida se é um erro de execução (quebra o programa) ou de lógica (roda liso, resposta errada).
Por que classificar o erro ajuda a resolver
Saber de qual tipo é o erro muda a estratégia de conserto. Se é de sintaxe, você lê a mensagem do computador, vai até o lugar apontado e corrige a escrita; costuma ser rápido. Se é de execução, você olha a mensagem, que geralmente diz o que aconteceu (divisão por zero, índice fora da lista), e descobre qual situação inesperada o código não tratou, o que leva direto à validação e ao tratamento de exceções das próximas aulas. Se é de lógica, não há mensagem para ler: você precisa comparar o que o programa faz com o que deveria fazer, usando exemplos, teste de mesa e testes automatizados, até achar onde o raciocínio escorregou. Diante de um erro, a primeira pergunta útil é: o programa nem rodou, rodou e quebrou, ou rodou e mentiu? A resposta aponta o caminho.
Teste rápido
Por que o erro de lógica é considerado o mais perigoso dos três tipos?
Perguntas frequentes
- Qual a diferença entre os três tipos de erro?
- Erro de sintaxe é código mal escrito que impede o programa de rodar. Erro de execução quebra o programa no meio, ao topar com uma situação que não sabe tratar. Erro de lógica deixa o programa rodar até o fim, mas entrega a resposta errada sem avisar. Da forma de aparecer, o de lógica é o mais silencioso.
- Por que o erro de sintaxe é o mais fácil?
- Porque ele aparece antes de o programa rodar e costuma vir com uma mensagem apontando onde está. O computador se recusa a executar até você corrigir a escrita. É chato, mas honesto: você sabe que há um problema e mais ou menos onde. Os outros dois exigem mais investigação.
- Como sei se é erro de execução ou de lógica?
- Pela forma como aparece. Se o programa para no meio com uma mensagem de erro, é de execução. Se ele roda até o fim e entrega um resultado, mas o resultado está errado, é de lógica. A pergunta rápida é: o programa quebrou ou mentiu? Quebrou é execução; mentiu é lógica.
- Como caço um erro de lógica se não há mensagem?
- Comparando o que o programa faz com o que deveria fazer, usando exemplos de entrada com a saída esperada. O teste de mesa (seguir o código passo a passo) e os testes automatizados (que conferem a resposta) são as ferramentas principais. Sem mensagem, você mesmo precisa criar os sinais que revelam o erro.
- Um programa pode ter mais de um tipo de erro?
- Pode, e é comum durante o desenvolvimento. Você corrige os de sintaxe primeiro, porque sem isso nada roda; depois trata os de execução, que aparecem ao testar; e por fim caça os de lógica, comparando resultados. Cada tipo tende a aparecer numa fase, mas todos podem conviver num código em construção.
- Os testes automatizados pegam qual tipo de erro?
- Principalmente os de lógica, que são os mais difíceis de perceber. Um teste automatizado roda o código com uma entrada conhecida e confere se a saída bate com a esperada; se não bater, revela um erro de lógica. Também ajudam a garantir que uma correção não quebrou outra coisa. São a rede de segurança contra o vilão silencioso.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.