# [[Tipos de erros em Python]] Em [[Linguagem de programação Python|Python]], erros (ou exceções) são eventos que ocorrem durante a execução de um programa e interrompem o fluxo normal das instruções. É importante entender os diferentes tipos de erros para poder depurar e corrigir seu código de forma eficaz. Aqui estão alguns dos tipos de erros mais comuns em Python: 1. **`AttributeError`**: Ocorre quando você tenta acessar um atributo ou método que não existe em um objeto. ```python class Pessoa: def __init__(self, nome): self.nome = nome pessoa = Pessoa("Alice") # print(pessoa.idade) # Isso causaria um AttributeError ``` 1. **`ImportError`**: Ocorre quando há um problema ao importar um módulo. Isso pode acontecer se o módulo não estiver instalado, se o nome estiver incorreto ou se o Python não conseguir encontrá-lo no caminho de importação. ```python # import modulo_inexistente # Isso causaria um ImportError ``` 1. **`IndexError`**: Ocorre quando você tenta acessar um índice inválido em uma sequência (como uma lista, tupla ou string). ```python lista = [1, 2, 3] # print(lista[3]) # Isso causaria um IndexError ``` 1. **`KeyError`**: Ocorre quando você tenta acessar uma chave que não existe em um dicionário. ```python dicionario = {"nome": "Alice", "idade": 30} # print(dicionario["endereco"]) # Isso causaria um KeyError ``` 1. **`NameError`**: Ocorre quando você tenta usar uma variável que não foi definida. ```python # print(variavel_nao_definida) # Isso causaria um NameError ``` 1. **`NotImplementedError`**: É usado como um marcador para indicar que um método ou função ainda não foi implementado. É comum em classes abstratas ou interfaces. ```python class Animal: def fazer_som(self): raise NotImplementedError("Subclasses devem implementar este método") class Cachorro(Animal): def fazer_som(self): return "Au au!" # animal = Animal() # animal.fazer_som() # Isso causaria um NotImplementedError cachorro = Cachorro() print(cachorro.fazer_som()) ``` 1. **`StopIteration`**: É usado por iteradores para sinalizar que não há mais elementos a serem retornados. ```python meu_iterador = iter([1, 2, 3]) # next(meu_iterador) # next(meu_iterador) # next(meu_iterador) # next(meu_iterador) # Isso causaria um StopIteration ``` 1. **`SyntaxError`**: Ocorre quando há um erro na sintaxe do código Python. Isso geralmente indica um erro de digitação, um parêntese ou aspas não fechadas, ou o uso incorreto de palavras-chave. ```python # print("Olá, mundo" # Isso causaria um SyntaxError (falta um parêntese) ``` * **`IndentationError`**: Um tipo específico de `SyntaxError` que ocorre devido a problemas de indentação. Python usa indentação para definir blocos de código, então a indentação incorreta pode levar a erros. ```python # def minha_funcao(): # print("Olá") # Isso causaria um IndentationError (indentação incorreta) ``` 9. **`TypeError`**: Ocorre quando uma operação ou função é aplicada a um objeto de tipo inadequado. ```python # print("Olá" + 5) # Isso causaria um TypeError (não é possível concatenar string com inteiro) ``` 1. **`ValueError`**: Ocorre quando uma função recebe um argumento com o tipo correto, mas com um valor inválido. ```python # int("abc") # Isso causaria um ValueError (não é possível converter "abc" para inteiro) ``` **Como lidar com erros:** É importante tratar os erros em seu código para evitar que o programa seja interrompido abruptamente. Você pode usar blocos `try…except` para capturar e lidar com exceções: ```python try: # Código que pode gerar uma exceção resultado = 10 / 0 except ZeroDivisionError: # Lidar com a exceção print("Erro: divisão por zero!") ``` **Referências:** * [8. Errors and Exceptions — Python 3.12.5 Documentation](https://docs.python.org/pt-br/3/tutorial/errors.html) * [10 Python Errors Explained In 15 Minutes - YouTube](https://www.youtube.com/watch?v=JG1livF44_E&t=601s)