Introdução a Exceções em Python
Nesta seção, serão consideradas exceções em Python. Para começar, é preciso entender o que elas são.
Ao escrever qualquer programa, o desenvolvedor implicitamente espera que todos os mecanismos técnico-software utilizados funcionem corretamente.
No entanto, isso nem sempre é verdade. Ao transmitir dados pela rede, a conexão cai e os dados chegam até nós de forma incorreta, ou simplesmente não chegam. Ao gravar um arquivo, descobre-se que o espaço alocado para nós no disco rígido acabou, e o arquivo não pode ser gravado. Ao ler um arquivo, descobre-se que esse arquivo não existe e não temos de onde ler. Ao imprimir dados na impressora, o cabo que conecta a impressora e o computador se rompe.
Todas as situações descritas têm uma essência comum: ocorre uma falha que leva à impossibilidade ou falta de sentido em completar a operação planejada.
Há também situações em que ocorre um erro que não é uma falha. Por exemplo, você pergunta o email do usuário, e ele insere o email em um formato incorreto. É claro que nosso programa não pode continuar processando o email, pois ele está incorreto. Mas, no entanto, isso não é uma exceção. Nosso programa pode corrigir a situação sozinho: ele exibirá uma mensagem de erro e o usuário repetirá sua entrada.
Na verdade, a diferença entre uma falha e um não falha é bastante difusa. Um evento que um programa pode interpretar como uma exceção, outro programa pode interpretar como um erro com o qual ele pode lidar.
O critério aqui é o seguinte: se, ao surgir um problema, seu programa pode continuar executando aquilo para o qual foi projetado, então não é uma exceção, mas se não pode - então sim, é uma exceção.
Por exemplo, temos um programa que deve perguntar o email do usuário. Se o usuário inseriu o email em um formato incorreto - isso não é uma falha. É um problema esperado e nosso programa perguntará ao usuário o email quantas vezes forem necessárias, até que ele o insira corretamente.
Suponha que nosso programa, que pergunta o email, também deva enviar esse email correto através da internet. Nesse caso, acontece que a internet não está funcionando. Isso já é um problema: o programa de modo algum poderá enviar os dados pela internet se ela não estiver funcionando. O programa, no entanto, pode continuar sua execução: ele pode exibir informações sobre o problema, repetir a tentativa de envio após algum tempo, e assim por diante. Mas essas ações já não são exatamente aquilo para o qual o programa foi projetado, pois a ação principal - enviar o email - o programa não conseguirá fazer.
Portanto, muitas vezes, a interpretação de qual comportamento será considerado normal e qual será considerado excepcional depende das tarefas que o programador tem.