Ei! Tudo bem, Herley?
Excelente reflexão e uma dúvida muito comum, agradeço por compartilhar com a comunidade, pois pode haver outros(as) colegas com a mesma dúvida.
No dia a dia, nós usamos o raise para criar regras de negócio personalizadas, forçando o código a parar e avisar que algo deu muito errado antes que esse erro quebre o sistema lá na frente de forma silenciosa.
Para te ajudar a visualizar, imagine que você está construindo um script automatizado que lê um arquivo CSV diário com dados de clientes para aprovação de crédito. Uma das regras cruciais do banco é: a idade do cliente não pode ser negativa e nem maior que 120 anos.
Se você usar apenas um if e print(), o código exibe o aviso na tela, mas continua rodando e envia o dado corrompido para o modelo de Inteligência Artificial, gerando uma previsão errada.
def processar_idade_cliente(idade):
if idade < 0 or idade > 120:
# Forçamos o erro imediatamente para o pipeline parar aqui!
raise ValueError(f"Idade inválida detectada: {idade}. O processo foi interrompido para evitar dados corrompidos.")
# Se estiver tudo certo, o código continua
print("Idade processada com sucesso.")
Por que isso é útil e "Pythônico"?
Em aplicações reais, é melhor o código parar imediatamente e te dar um erro claro (ValueError) do que continuar rodando com dados errados.
Quem for usar a sua função no futuro (ou até outra biblioteca) vai conseguir capturar esse erro específico usando um try/except e tratá-lo adequadamente (como salvar o erro em um arquivo de log ou enviar um alerta no Slack da equipe).
Espero que tenha dado para visualizar um pouquinho do uso do rise.
Bons estudos e até mais!
Conteúdo para complementar seus estudos
Esse conteúdo pode estar em inglês, para traduzi-lo utilize o tradutor automático do navegador ou clique com o botão direito do mouse sobre a página e selecione a opção Traduzir para o português.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado