Tipos de erros em C ++
Existem dois tipos de erros - aqueles que C ++ pode pegar no seu próprio e aqueles que o compilador não pode pegar. Erros que C ++ pode pegar são conhecidos como em tempo de compilação ou build-time erros. Build-time erros são geralmente mais fáceis de resolver porque o compilador pontos-o para o problema, se você pode entender o que o compilador de lhe dizendo.
Às vezes, a descrição do problema não está certo (é fácil confundir um compilador), mas você começa a entender melhor como o compilador pensa como você ganha experiência.
Erros que C ++ não pode pegar não aparecem até que você tente executar o programa durante o processo conhecido como teste de unidade. Durante os testes de unidade, você executar o seu programa com uma série de entradas diferentes, tentando encontrar entradas que torná-lo falhar. (Você não quer que seu programa falhar, é claro, mas é sempre melhor que você - ao invés de seu usuário -. Encontrar e corrigir esses casos)
Os erros que você encontra por executar o programa são conhecidos como Run-Time erros. Erros de tempo são mais difíceis de encontrar do que construir-time erros, porque você não tem nenhuma dica do que está errado, exceto por qualquer saída errante o programa pode gerar.
A saída nem sempre é tão simples. Por exemplo, suponha que o programa perdeu o seu caminho e começou a executar instruções que não são ainda parte do programa que você escreveu. (Isso acontece muito mais frequentemente do que se poderia pensar.)
Um programa errante é como um trem que saltou da pista - o programa não parar a execução até que ela atinge algo realmente grande. Por exemplo, a CPU pode acontecer apenas para executar uma operação de divisão por zero - isto gera um alarme que as interceptações do sistema operacional e usa como uma desculpa para encerrar o seu programa.
Um programa errante é como um trem descarrilhado de outra maneira - uma vez que o programa começa indo para o caminho errado, ele Nunca salta de volta para a pista.
Nem todos os erros de tempo de execução são assim tão dramático. Alguns programas errantes ficar nas pistas, mas gerar a saída errada (quase universalmente conhecido como # 147-lixo saída # 148-). Estes são ainda mais difíceis de pegar uma vez que a saída pode parecer razoável até que você examiná-lo de perto.