Skip to main content

Try-Catch | Python

  • Try-Catch | Python

🧱 Estrutura Básica (try, except, else, finally)

try:
# bloco de código que pode gerar erro
resultado = 10 / 0

except ZeroDivisionError:
# trata um erro específico
print("Erro: divisão por zero.")

except ValueError as e:
# captura o erro e armazena em 'e'
print(f"Erro de valor: {e}")

except Exception as e:
# captura qualquer outro erro
print(f"Erro genérico: {e}")

else:
# executa somente se NÃO ocorrer erro
print("Operação concluída com sucesso.")

finally:
# executa sempre (com ou sem erro)
print("Finalizando execução.")

🚨 Lançando Exceções Manualmente (raise)

def dividir(a, b):
if b == 0:
raise ZeroDivisionError("Você tentou dividir por zero!")
return a / b

print(dividir(10, 2))

👉 raise serve para disparar uma exceção, seja padrão (como ValueError) ou personalizada.


🧩 Criando Exceções Personalizadas

class ErroNegativo(Exception):
pass

def processar(x):
if x < 0:
raise ErroNegativo("Valor negativo não permitido.")
print("Processado com sucesso!")

try:
processar(-5)
except ErroNegativo as e:
print(f"Erro personalizado: {e}")

🧠 Verificação Rápida (assert)

def login(usuario):
assert usuario != "", "Usuário não pode ser vazio!"
print("Login válido.")

login("admin")

👉 assert é usado para verificar condições durante o desenvolvimento. Se a condição for falsa, lança automaticamente um AssertionError.


🔍 Resumo Geral

PalavraFunçãoExecuta Quando
tryBloco que pode gerar exceçãoSempre
exceptCaptura e trata exceçõesQuando ocorre erro
elseBloco alternativoQuando não ocorre erro
finallyLimpeza ou fechamentoSempre, com ou sem erro
raiseLança exceção manualmenteQuando desejado
assertTesta condição lógicaSe falsa → erro