CodeGym /Cursos /Python SELF PT /Exceções Populares

Exceções Populares

Python SELF PT
Nível 17 , Lição 1
Disponível

2.1 Criando Exceções

Não pode vencê-los — junte-se a eles. Se não podemos evitar erros no programa, precisamos aprender a controlá-los. Então, bora aprender a criar exceções conscientemente.

O exemplo mais simples de exceção — é a divisão por zero. E o programa é bem simples:


x = 100 / 0

Esse código vai executar com erro:


Traceback (most recent call last):
    File "", line 1, in 
         x = 100 / 0
        ~~~^~   
ZeroDivisionError: division by zero

ZeroDivisionError — é o nome da exceção, e division by zero — é a descrição breve. Python também vai te mostrar o número da linha onde essa exceção rolou.

Incompatibilidade de Tipos de Dados

Claro, existem outras exceções. Por exemplo, ao tentar somar uma string com um número:


s = "100" + 100

Vai rolar uma exceção TypeError:


Traceback (most recent call last):
    File "", line 1, in 
TypeError: unsupported operand type(s) for +: 'str' and 'int'

Fora dos Limites da Lista

Outra errozão comum que gera exceção é tentar acessar um elemento que não tá na lista:


my_list = [1, 2, 3]
print(my_list[10])

Vai rolar uma exceção IndexError:


Traceback (most recent call last):
    print(my_list[10])
        ~~~~~~~^^^^
IndexError: list index out of range

Quantas existem no total? Há milhares de tipos de exceções. Além disso, você pode criar as suas próprias, se as existentes não bastarem para descrever alguma situação específica. Embora as mais populares não sejam tantas.

2.2 Lista das Exceções mais Populares

Existem muitas exceções, mas pra você, que tá começando, é útil conhecer as mais populares. Vou listar algumas delas:

Exceção Descrição
Exception Classe base para todas as exceções.
IndexError Ocorre quando se tenta acessar um índice que não existe em uma sequência (como lista ou tupla).
KeyError Ocorre ao acessar uma chave que não existe num dicionário.
NameError Ocorre ao tentar acessar uma variável que não existe.
RuntimeError Erro geral de execução que não se encaixa em outras categorias.
StopIteration Indica o fim de uma iteração.
SyntaxError Erro de sintaxe no código.
IndentationError Erro de indentação no código (subtipo de SyntaxError).
TabError Ocorre ao misturar tabulações e espaços para indentação (subtipo de IndentationError).
TypeError Quando se tenta realizar uma operação com tipos de dados incompatíveis.
UnboundLocalError Ocorre ao acessar uma variável local antes de ser declarada (subtipo de NameError).
ValueError Quando uma função recebe um argumento com valor inadequado.
ZeroDivisionError Divisão por zero.

Provavelmente, você, como novato, vai se deparar com todos esses erros no primeiro mês de estudo. E não tem problema nisso — é errando que se aprende.

2.3 Erros no Código

Bora analisar mais algumas situações em que ocorrem erros no código, pra você pegar a manha e achar eles mais rápido no seu próprio código:

IndentationError

Esse erro rola quando as indentações no código estão erradas. Por exemplo, misturar tabulações e espaços ou a quantidade errada de indentação.


def example():
    print("Hello")
     print("World")  # Indentação errada causa IndentationError
        
example()

NameError


def example():
    print(undeclared_variable)  # Tentar usar variável não declarada causa NameError
        
example()

ValueError

Esse erro ocorre quando uma operação ou função recebe um argumento de tipo correto, mas com valor inadequado.


def example():
    int("abc")  # Tentar converter string não numérica causa ValueError
        
example()

KeyError

Esse erro rola quando o programa tenta acessar uma chave que não existe em um dicionário.


def example():
    my_dict = {"a": 1, "b": 2}
    print(my_dict["c"])  # Tentar acessar chave inexistente causa KeyError
        
example()

SyntaxError

Esse erro ocorre quando há um erro de sintaxe no código, ou seja, o código não segue a gramática do Python.


def example():
    eval("if True print('Hello')")  # Sintaxe errada causa SyntaxError
        
example()

Prevenido vale por dois. Agora você pode identificar e até criar situações que causam erros. Chegou a hora de aprender a lidar com esses erros.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION