Todas as exceções em Python são classes que herdam de uma base comum, BaseException
. A maioria das exceções que você usará herda de Exception
. É uma boa prática capturar exceções mais específicas primeiro e, se necessário, uma mais genérica depois.
BaseException
├── SystemExit
├── KeyboardInterrupt
├── GeneratorExit
└── Exception
├── ArithmeticError
│ ├── FloatingPointError
│ ├── OverflowError
│ └── ZeroDivisionError
├── LookupError
│ ├── IndexError
│ └── KeyError
└── ... (outras exceções como ValueError, FileNotFoundError, TypeError, etc.)
Exemplo de Ordem de except
:
try:
# Código
minha_lista = [1, 2, 3]
print(minha_lista[5]) # IndexError
# meu_dicionario = {}
# print(meu_dicionario['chave']) # KeyError
except IndexError:
print("Erro: Índice fora dos limites da lista!")
except KeyError:
print("Erro: Chave não encontrada no dicionário!")
except Exception as e: # Captura qualquer outra exceção que não seja Index ou Key
print(f"Ocorreu um erro geral: {e}")