Exceções
Exceções em Python são eventos que ocorrem durante a execução de um programa e que interrompem seu fluxo normal quando erros ou condições inesperadas são encontrados. Elas são uma forma estruturada de lidar com erros, fornecendo ferramentas para capturá-los e tratá-los de maneira controlada. Todas as exceções em Python derivam de BaseException, sendo Exception a subclasse mais usada.
Exceções mais comuns:
| Exceção | Descrição |
|---|---|
| ZeroDivisionError | Divisão por zero. |
| ValueError | Valor inválido. |
| TypeError | Operação realizada em tipos incompatíveis. |
| IndexError | Índice fora do intervalo. |
| KeyError | Chave inexistente em um dicionário. |
| FileNotFoundError | Arquivo ou diretório não encontrado. |
| ImportError | Módulo não pode ser importado. |
Dica: coloque o menor número de linhas possível no try para saber melhor qual tipo de erro poderá tratar.
Obs.: Cada bloco try pode tratar quantas exceções forem necessárias.
# Tenta converter a entrada para um número inteiro
try:
x = int(input("Digite um número: "))
# Caso ocorra um erro de valor
except ValueError:
print("Você não digitou um número válido.")
# O else em uma exceção é executado quando não da erro
else:
print("Você digitou um número válido.")
# Finally Sempre será executada
finally:
print("Esta linha sempre será executada.")
lista = [1, 2, 3]
try:
total = lista + 2
except Exception as e:
# Mostra o erro que ocorreu
print(f"Ocorreu um erro: {e}")
Raise
O comando raise em Python é usado para lançar uma exceção. Quando usado, ele interrompe a execução normal do programa e transfere o controle para o manipulador de exceções mais próximo. É útil para sinalizar erros ou condições inesperadas no código.
def divide(a, b):
if b == 0:
# Pausa a execução e Lança uma exceção do tipo ValueError
raise ValueError("O divisor não pode ser zero.")
return a / b
try:
resultado = divide(10, 0)
# Captura a exceção lançada e imprime a personalização do resultado
except ValueError as e:
print(f"Erro: {e}")
O nome do tipo de erro não importa(ValueErro nesse caso), serve apenas para organizar melhor.