Pitão

Exceção Python

Exceção Python

Uma exceção é um evento que surge durante a execução de um programa para encerrar ou alterar o fluxo normal de um programa. Um erro, por exemplo, levanta uma exceção. Como outras linguagens de programação, Python contém muitas exceções integradas. Essas exceções são levantadas se um erro for encontrado quando o programa for executado. O tipo de erro determina qual exceção deve ser levantada. Quando ocorre uma exceção, o interpretador Python verifica se a exceção foi tratada; se não, ele encerra o programa. Este artigo explica as exceções em Python por meio de vários exemplos.

Exceções Python integradas

Conforme discutido anteriormente, Python tem muitas exceções integradas que são levantadas quando ocorre um erro durante a execução de um programa. Cada exceção é derivada de uma classe base de "Exceção". O seguinte inclui algumas exceções integradas do Python, junto com uma breve descrição de cada tipo de exceção:

Exceção Descrição
Exceção Cada exceção é derivada desta classe.
ImportError Esta exceção é gerada quando um módulo específico é importado e não é encontrado.
EOFError Esta é a exceção de fim de arquivo. Esta exceção ocorre quando o final do arquivo é alcançado.
ZeroDivisionError Esta exceção é levantada quando um número é dividido por zero.
KeyError Esta exceção é levantada se uma certa chave que não está definida dentro de um dicionário é especificada ou usada.
IndexError Esta exceção é gerada quando o acesso a um índice de sequência que não está no intervalo foi tentado.
FloatingPointError Esta exceção é gerada quando uma operação de ponto flutuante falha.

Estas são algumas das exceções integradas em Python. Visite a documentação oficial para obter mais informações sobre o uso de exceções integradas em Python, localizada em https: // docs.Pitão.org / 3 / library / exceptions.html.

Uso de exceção em Python

As exceções em Python são tratadas usando a instrução try. O trecho de código que pode lançar ou levantar uma exceção é implementado em um bloco try. Ao lado do bloco try, um bloco except é implementado para lidar com a exceção. No bloco except, pegamos a exceção e decidimos qual operação realizar quando encontramos essa exceção particular. A sintaxe para escrever os blocos try e except é a seguinte:

tentar:
realizar a operação ou função
exceto:
funcionalidade para lidar com a exceção

Agora, vamos implementar um código simples em nosso script Python usando os blocos try e except.

Aqui, imprimiremos uma variável 'nome' que não está definida. Isso levanta uma exceção no bloco exceto.

#implementando o bloco try
tentar:
imprimir (nome)
#implementando o bloco except
exceto:
imprimir ("Ocorreu uma exceção")

Resultado

Se nenhuma exceção ocorrer, apenas o bloco try é executado. No bloco except, é impressa uma declaração de que ocorreu uma exceção.

Vejamos outro exemplo em que definimos a variável de nome:

# definindo a variável de nome
nome = "marca"
#implementando o bloco try
tentar:
imprimir (nome)
#implementando o bloco except
exceto:
imprimir ("Ocorreu uma exceção")

Resultado

No exemplo acima, o bloco try é executado e o bloco except é ignorado porque o programa não levanta quaisquer exceções. Podemos definir tantos blocos exceto em nosso programa quanto quisermos. Cada bloco exceto lida com um tipo específico de exceção.

#implementando o bloco try
tentar:
imprimir (nome)
#implementar o bloco except para detectar o erro de nome
exceto NameError:
print ("A variável não está definida")
#implementando o bloco except
exceto:
print ("Algo deu errado, exceto erro de nome")

Resultado

Em Python, Exception é a classe base para todas as exceções. Em vez de escrever o nome de uma exceção específica no bloco except, podemos simplesmente escrever "Exception" e capturar todos os tipos de exceção desta forma.

#implementando o bloco try
tentar:
imprimir (nome)
#implementar o bloco except para detectar o erro
exceto Exceção como exp:
imprimir (exp.__aula__)
#implementando o bloco except
exceto:
print ("Algo deu errado, exceto erro de nome")

Resultado

O exp.__class__ retorna o nome da classe de exceção.

Da mesma forma, vejamos um exemplo da classe “ZeroDivisionError”.

#implementando o bloco try
tentar:
x = 1/0
imprimir (x)
#implementar o bloco except para detectar o erro
exceto Exceção como exp:
imprimir (exp.__aula__)
#implementando o bloco except
exceto:
print ("Algo deu errado, exceto erro de nome")

Resultado

O outro bloco

O bloco else é usado com os blocos try e exception. O bloco else define um trecho de código que é executado se o bloco try for executado com sucesso e nenhum erro ocorrer. Às vezes, você pode precisar imprimir uma mensagem ou executar uma função quando o bloco try foi executado com sucesso. Por esta razão, podemos implementar o bloco else com os blocos try e except.

Neste exemplo, implementaremos o bloco else em nosso script Python.

#implementando o bloco try
tentar:
x = 1/2
imprimir (x)
#implementar o bloco except para detectar o erro
exceto Exceção como exp:
imprimir (exp.__aula__)
#implementando o bloco else
senão:
imprimir ("Tudo correu bem")

Resultado

O bloco else é executado após a execução bem-sucedida do bloco try.

Vejamos agora outro exemplo usando o bloco else.

#implementando o bloco try
tentar:
nome = "marca"
#implementar o bloco except para detectar o erro
exceto Exceção como exp:
imprimir (exp.__aula__)
#implementando o bloco else
senão:
print ("O nome é:", nome)

Resultado

No exemplo acima, a variável name é definida dentro do bloco try e é impressa no bloco else.

O bloco finalmente

O finalmente bloco contém o trecho de código que deve ser executado independentemente de o bloco try gerar uma exceção. O bloco finally é opcional e é declarado com o bloco try. Por exemplo, se abrimos um arquivo de texto para ler o bloco try e ele levanta um erro ou exceção, é melhor incluir o arquivo no bloco finally, mesmo se o erro ocorrer. Vamos implementar o bloco finally em nosso script Python.

#implementando o bloco try
tentar:
imprimir (meu_dict)
#implementar o bloco except para detectar o erro
exceto Exceção como exp:
imprimir (exp.__aula__)
#implementando o bloco finally
finalmente:
print ("Este é o bloco final")
print ("O bloco final é executado")

Resultado

Na saída, pode-se ver que o bloco try levanta uma exceção. No entanto, o bloco final é executado no final.

Agora, vamos abrir um arquivo de texto no bloco try, o que levanta uma exceção enquanto o arquivo contido no bloco finally.

#implementando o bloco try
tentar:
fileObj = open ("mystudent.xml "," r ")
fileObj.procurar (-2)
imprimir (fileObj.readlines ())
#implementando o bloco except
exceto Exceção como exp:
imprimir (exp.__aula__)
#implementando o bloco finally
finalmente:
fileObj.perto()
imprimir ("Arquivo fechado com sucesso")

Resultado

Como você pode ver, independentemente do erro de valor, o arquivo foi fechado com sucesso dentro do bloco finally.

Levante uma exceção

Embora as exceções sejam levantadas automaticamente quando ocorre um erro, em Python, você também pode gerar exceções manualmente. O levantar palavra-chave é usada para levantar ou lançar a exceção.

Iremos agora levantar algumas exceções usando a palavra-chave raise. No exemplo a seguir, a condição if é implementada para verificar se há números não negativos. Se existir algum número não negativo, a exceção “Números não negativos não são permitidos” é levantada.

#declarar duas variáveis ​​numéricas
num1 = 20
num2 = -10
if ((num1<0) | (num2<0)):
Exceção de aumento ("Números não negativos não são permitidos")
senão:
imprimir (num1 + num2)

Resultado

Conclusão

Uma exceção ocorre em resposta a um erro em tempo de execução. Em Python, podemos lidar com exceções usando os blocos try e except. Este artigo explicou como usar exceções em Python por meio de vários exemplos.

Como usar o AutoKey para automatizar jogos Linux
AutoKey é um utilitário de automação de desktop para Linux e X11, programado em Python 3, GTK e Qt. Usando sua funcionalidade de script e MACRO, você ...
Como mostrar o contador de FPS em jogos Linux
Os jogos Linux tiveram um grande impulso quando a Valve anunciou o suporte Linux para o cliente Steam e seus jogos em 2012. Desde então, muitos jogos ...
Como baixar e jogar Sid Meier's Civilization VI no Linux
Introdução ao jogo Civilization 6 é uma versão moderna do conceito clássico introduzido na série de jogos Age of Empires. A ideia era bastante simples...