Tratamento de Exceções
tratamento de exceções em Python permite capturar e resolver erros específicos sem encerrar o programa abruptamente. A estrutura básica para isso é feita com os blocos try, except, e finally.
Blocos try, except e finally
try: Contém o código que pode causar uma exceção.
except: Especifica o que fazer se ocorrer uma exceção. Podemos capturar exceções específicas (como ValueError) ou usar except sem especificar o erro para capturar todas as exceções.
finally: Este bloco é executado independentemente de uma exceção ter ocorrido ou não, útil para liberar recursos, como fechar arquivos ou conexões.
Exemplo: Programa que pede ao usuário para inserir um número até que ele insira corretamente.


Neste exemplo:
Se o usuário inserir algo que não seja um número, o bloco except capturará o erro ValueError.
O bloco finally será executado após cada tentativa, independentemente do sucesso ou falha.
Depuração e Logging
A depuração ajuda a identificar e corrigir erros no código, enquanto o logging permite registrar eventos e mensagens que ajudam a monitorar e entender o comportamento do programa.
Ferramentas de Depuração
Depuradores (como o do VS Code) permitem executar o código passo a passo, inspecionar variáveis, e verificar o fluxo de execução. São úteis para entender o estado interno do programa e encontrar a origem de erros.
Uso do Módulo logging
O módulo logging permite registrar mensagens sobre o estado do programa em diferentes níveis (como debug, info, warning, error, e critical). Isso facilita o monitoramento e a solução de problemas em produção.
Exemplo: Script que registra logs de erros em um arquivo.


Neste exemplo:
2024-10-31 12:30:25,123 - INFO - Divisão realizada com sucesso: 10 / 2 = 5.0
2024-10-31 12:30:25,124 - ERROR - Erro: Tentativa de divisão por zero
O código tenta dividir dois números e registra o resultado em um arquivo de log.
Se ocorrer uma divisão por zero, ele registra um erro em vez de encerrar o programa.
O arquivo monitoramento.log conterá entradas como:
