O que é um erro?
Nas linguagens de programação, se executarmos algum código de forma inválida, a execução do programa será interrompida com uma mensagem e esta mensagem é chamada de erro ou exceção. Existem certos tipos de erros em uma linguagem de programação por diferentes motivos. Alguns deles são os seguintes:
Erro de afirmação:
Esse tipo de erro ocorre quando condições de asserção ou instruções falham no código.
Erro de importação:
Este erro ocorre quando importamos algum módulo no arquivo e se esse módulo não existe.
Erro de índice:
o que é envio de diretório
Ocorre quando, para qualquer sequência, seu índice está fora do intervalo.
Erro-chave:
Este erro é gerado em Python quando não conseguimos encontrar nenhuma chave no dicionário.
NomeErro:
Este erro pode ocorrer quando não encontramos nenhuma variável no escopo local ou global.
Erro de tempo de execução:
Este erro será gerado quando o erro não puder ser categorizado em nenhum tipo.
Erro de recuo:
Quando usamos o recuo errado no código Python, ocorrerá IndentationError.
Erro no sistema:
Quando houver um erro interno, SystemError será gerado pelo interpretador.
Erro Unicode:
Quando houver um erro de codificação ou decodificação relacionado ao Unicode e UnicodeError será gerado.
Erro de valor:
Quando em uma função passamos o argumento correto de acordo com o tipo de dado, mas o valor não é adequado, então o erro que ocorreu é denominado ValueError.
Erro ZeroDivision:
Como sabemos, em matemática não podemos dividir nenhum número por zero porque o resultado tende ao infinito. Portanto, se escrevemos qualquer afirmação sobre divisão por zero ou módulo por zero, o erro gerado será ZeroDivisionError.
EOFError:
Quando usamos a função input() para obter a entrada de um arquivo e chegamos ao final do arquivo, esse erro será gerado para indicar que chegamos ao final do arquivo e agora não podemos pegar nenhum entrada do arquivo.
Este artigo é dedicado principalmente ao AttributeError.
O que é AttributeError?
Este erro ocorre no programa quando há falha no condicionamento na atribuição do atributo. Por exemplo, se atribuirmos algum valor a uma variável inteira e tentarmos usar qualquer função de string dessa variável, isso gerará AttributeError.
Podemos entender o motivo do AttributeError em Python pelos seguintes exemplos:
Exemplo 1:
Quando aplicamos uma função em um tipo de dados diferente, o que não é possível
a=15 a.append('javatpoint')
Saída:
Explicação:
No código acima, temos uma variável inteira e a inicializamos com o valor 15. Agora, se usarmos a função de acréscimo na variável a, ela fornecerá o AttributeError, que diz que não há nenhum atributo como acréscimo no tipo de dados inteiro.
Exemplo2:
Há chances de AttributeError na grafia errada do atributo.
string = 'you will learn each coding tutorial from '.fst('Javatpoint') print(string)
Saída:
Explicação:
No código acima, temos um atributo string, e aplicamos o atributo fst, então haverá AttributeError de que este atributo não existe para a variável.
Exemplo3:
Podemos obter AttributeError se tentarmos fazer uma referência errada para qualquer variável de classe.
class Javatpoint(): def __init__(self): self.var1 = 'This is for JavatPoint' obj = Javatpoint() print(obj.var1) print(obj.var2)
Saída:
Explicação:
No código acima, temos uma classe e existe uma variável chamada var1. Criamos o objeto da classe, e por engano, referenciamos a variável var2 errada daquela classe que ainda não existe, então com certeza haverá um AttributeError.
A solução para resolver o erro ou exceção:
Em Python ou em qualquer linguagem de programação, podemos usar tratamento de exceções ou erros usando instruções try e except.
Exemplo 4:
class Javatpoint(): def __init__(self): self.var1 = 'This is for javatpoint' obj = Javatpoint() try: print(obj.var1) print(obj.var2) except AttributeError: print('There is no such attribute')
Saída:
Explicação:
No código acima, temos uma classe e uma variável chamada var1. Na instrução try, tentamos fazer referência a var1 e var2. Seremos capazes de desreferenciar o var1 e imprimiremos a instrução para ele, mas obteremos o AttributeError para referenciar o var2. Assim, o programa irá para o bloco except e imprimiremos a instrução, que é escrita apenas para a condição de erro.