Veja as principais exceptions integradas do Python
Exceções (exceptions) no Python são eventos ou condições anômalas que ocorrem durante a execução de um programa, interrompendo o fluxo normal de execução. Elas permitem que o programa trate erros e situações inesperadas de forma controlada, sem encerrar abruptamente. Em Python, exceções são representadas por objetos que derivam da classe base BaseException
.
BaseException
: A classe base para todas as exceções em Python.Exception
: Subclasse deBaseException
, a classe base para todas as exceções não sistemáticas.
EXCEÇÕES (EXCEPTIONS) COMUNS
EXCEÇÕES | DESCRIÇÃO |
---|---|
ArithmeticError | Gerado quando ocorre um erro em cálculos numéricos |
AssertionError | Gerado quando uma instrução assert falha |
AttributeError | Gerado quando a referência ou atribuição de atributo falha |
Exception | Classe base para todas as exceções |
EOFError | Gerado quando o método input() atinge uma condição de "fim de arquivo" (EOF) |
FloatingPointError | Gerado quando um cálculo de ponto flutuante falha |
GeneratorExit | Gerado quando um gerador é fechado (com o método close()) |
ImportError | Gerado quando um módulo importado não existe |
IndentationError | Gerado quando o recuo não está correto |
IndexError | Gerado quando um índice de uma sequência não existe |
KeyError | Gerado quando uma chave não existe em um dicionário |
KeyboardInterrupt | Gerado quando o usuário pressiona Ctrl+c, Ctrl+z ou Delete |
LookupError | Gerado quando os erros levantados não podem ser encontrados |
MemoryError | Gerado quando um programa fica sem memória |
NameError | Gerado quando uma variável não existe |
NotImplementedError | Gerado quando um método abstrato requer uma classe herdada para substituir o método |
OSError | Gerado quando uma operação relacionada ao sistema causa um erro |
OverflowError | Gerado quando o resultado de um cálculo numérico é muito grande |
ReferenceError | Levantado quando um objeto de referência fraco não existe |
RuntimeError | Gerado quando ocorre um erro que não pertence a nenhuma exceção específica |
StopIteration | Levantado quando o método next() de um iterador não possui mais valores |
SyntaxError | Gerado quando ocorre um erro de sintaxes |
SystemExit | Gerado quando a função sys.exit() é chamada |
TypeError | Gerado quando dois tipos diferentes são combinados |
UnboundLocalError | Gerado quando uma variável local é referenciada antes da atribuição |
UnicodeError | Gerado quando ocorre um problema unicode |
UnicodeEncodeError | Gerado quando ocorre um problema de codificação Unicode |
UnicodeDecodeError | Gerado quando ocorre um problema de codificação Unicode |
UnicodeTranslateError | Gerado quando ocorre um problema de tradução Unicode |
ValueError | Gerado quando há um valor errado em um tipo de dados especificado |
ZeroDivisionError | Gerado quando o segundo operador em uma divisão é zero |
BaseException
É a classe base para todas as exceções em Python. É mais geral que Exception
e inclui SystemExit
, KeyboardInterrupt
, e GeneratorExit
. Ela não é usada diretamente em código de aplicação, mas serve como a classe pai para todas as outras exceções na hierarquia de exceções. Isso inclui exceções internas (como TypeError
, ValueError
, etc.) e também exceções definidas pelo usuário.
Hierarquia da BaseException
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- ArithmeticError
| +-- FloatingPointError
| +-- OverflowError
| +-- ZeroDivisionError
+-- AssertionError
+-- AttributeError
+-- BufferError
+-- EOFError
+-- ImportError
| +-- ModuleNotFoundError
+-- LookupError
| +-- IndexError
| +-- KeyError
+-- MemoryError
+-- NameError
| +-- UnboundLocalError
+-- OSError
| +-- BlockingIOError
| +-- ChildProcessError
| +-- ConnectionError
| | +-- BrokenPipeError
| | +-- ConnectionAbortedError
| | +-- ConnectionRefusedError
| | +-- ConnectionResetError
| +-- FileExistsError
| +-- FileNotFoundError
| +-- InterruptedError
| +-- IsADirectoryError
| +-- NotADirectoryError
| +-- PermissionError
| +-- ProcessLookupError
| +-- TimeoutError
+-- ReferenceError
+-- RuntimeError
| +-- NotImplementedError
| +-- RecursionError
+-- StopIteration
+-- StopAsyncIteration
+-- SyntaxError
| +-- IndentationError
| +-- TabError
+-- SystemError
+-- TypeError
+-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
+-- ResourceWarning
Exception
A exceção Exception
é uma classe base para todas as exceções não sistêmicas em Python. É a principal classe que você utilizará para capturar e manipular erros em seu código. Ela herda de BaseException
e serve como uma classe pai para a maioria das exceções embutidas e personalizadas.
Características Principais da Exception
Classe Base para Erros Comuns: Todas as exceções embutidas em Python que representam erros comuns (como
ValueError
,TypeError
,RuntimeError
, etc.) derivam da classeException
. Isso significa que você pode capturar um amplo espectro de erros utilizandoException
.Uso em Blocos try-except: A classe
Exception
é comumente usada em blocostry-except
para capturar e tratar exceções. Isso permite que você lide com erros de maneira controlada e execute ações específicas em resposta a diferentes tipos de exceções.Criação de Exceções Personalizadas: Ao criar exceções personalizadas em seu código, você geralmente herdará de
Exception
. Isso permite que suas exceções personalizadas sejam tratadas da mesma forma que as exceções embutidas.
Estrutura da Exception
A classe Exception
possui alguns atributos e métodos importantes que podem ser usados para obter informações sobre a exceção:
- Atributo
args
: Um tupla que contém os argumentos passados para a exceção. - Método
__str__
: Retorna uma string que representa a exceção. - Método
__repr__
: Retorna uma representação mais detalhada da exceção.
Hierarquia da Exception
Exception
+-- ArithmeticError
| +-- FloatingPointError
| +-- OverflowError
| +-- ZeroDivisionError
+-- AssertionError
+-- AttributeError
+-- BufferError
+-- EOFError
+-- ImportError
| +-- ModuleNotFoundError
+-- LookupError
| +-- IndexError
| +-- KeyError
+-- MemoryError
+-- NameError
| +-- UnboundLocalError
+-- OSError
| +-- BlockingIOError
| +-- ChildProcessError
| +-- ConnectionError
| | +-- BrokenPipeError
| | +-- ConnectionAbortedError
| | +-- ConnectionRefusedError
| | +-- ConnectionResetError
| +-- FileExistsError
| +-- FileNotFoundError
| +-- InterruptedError
| +-- IsADirectoryError
| +-- NotADirectoryError
| +-- PermissionError
| +-- ProcessLookupError
| +-- TimeoutError
+-- ReferenceError
+-- RuntimeError
| +-- NotImplementedError
| +-- RecursionError
+-- StopIteration
+-- StopAsyncIteration
+-- SyntaxError
| +-- IndentationError
| +-- TabError
+-- SystemError
+-- TypeError
+-- ValueError
| +-- UnicodeError
| +-- UnicodeDecodeError
| +-- UnicodeEncodeError
| +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
+-- ResourceWarning
Acesse a documentação do python: