# Erros, rapidinho Author: Paulo Queiroz Language: pt Source: https://raggesilver.com/pt/blog/05-errors-real-quick Vamos dar uma olhada rápida em como criar e lidar com erros. Neste post, vamos dar uma olhada rápida em como criar e lidar com erros. Usaremos Python nos exemplos, mas o mesmo conceito existe em várias linguagens. ## O que é um erro? Essa pode parecer uma pergunta boba, mas em programação, um erro pode não ser a mesma coisa que o significado conversacional da palavra. Se você já escreveu um código como este, você poderia ter levantado um erro: ```py a = int(input("Digite um número: ")) b = int(input("Digite outro número: ")) if b == 0: print("Você não pode dividir por zero!") else: print(f"{a} / {b} = {a / b}") ``` Neste exemplo, estamos verificando se o segundo número é zero antes de fazer a divisão, mas em vez de levantar um erro, estamos imprimindo uma mensagem. Esta é uma prática comum, mas não é a única maneira de lidar com erros. ## Levantando um erro Em Python, você pode levantar um erro usando o `raise`. Aqui está um exemplo: ```py def divide(a, b): if b == 0: raise ValueError("Você não pode dividir por zero!") return a / b a = int(input("Digite um número: ")) b = int(input("Digite outro número: ")) divide(a, b) ``` Neste exemplo, se o usuário inserir zero como o segundo número, a função irá levantar um erro. Isso irá parar a execução do programa onde ele está, imprimir um erro, e sair. **Nada** depois da linha onde o erro foi levantado será executado. ## Lidando com erros Não precisamos deixar o programa _crashar_ quando qualquer erro é levantado. Na verdade, na maioria das vezes devemos lidar com os erros. É assim que podemos fazer isso: ```py def divide(a, b): if b == 0: raise ValueError("Você não pode dividir por zero!") return a / b a = int(input("Digite um número: ")) b = int(input("Digite outro número: ")) try: result = divide(a, b) print(f"{a} / {b} = {result}") except ValueError as e: print("Ocorreu um erro: ", e) ``` Neste exemplo o programa não irá _crashar_. Em vez disso, após o erro ser levantado, a instrução `return` (ou qualquer coisa que poderia ter vindo após a linha onde o erro foi levantado) **não será executada**. O programa irá pular para o bloco `except` e continuar a execução a partir dali. > Este exemplo é bobo, já que Python já irá levantar um erro se você tentar > dividir por zero. Mas ele serve para ilustrar o conceito. ## Conclusão Erros são um conceito presente em várias linguagens. Eles são uma maneira de parar a execução de um programa quando algo inesperado acontece. Podemos levantar erros nós mesmos, ou podemos deixar a linguagem levantá-los para nós. Também podemos lidar com erros, para que o programa não _crashe_ quando eles acontecem. No próximo post, vamos dar uma olhada em por que algumas pessoas dizem que erros/exceções são um conceito ruim e quais são as alternativas.