Exceção de Python

Exceção de 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, o Python contém muitas exceções internas. 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 intérprete Python verifica se a exceção é tratada; Caso contrário, encerra o programa. Este artigo explica exceções em Python através de vários exemplos.

Exceções de Python embutidas

Como discutido anteriormente, Python tem muitas exceções internas que são levantadas quando ocorre um erro durante a execução de um programa. Toda exceção é derivada de uma classe base de "exceção". Os seguintes incluem algumas exceções de Python embutidas, juntamente com uma breve descrição de cada tipo de exceção:

Exceção Descrição
Exceção Toda exceção é derivada desta classe.
Importador Esta exceção é levantada quando um módulo específico é importado e não é encontrado.
Eoperror Esta é a exceção de final 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 for definida dentro de um dicionário for especificada ou usada.
IndexError Esta exceção é levantada quando o acesso a um índice de sequência que não está no intervalo foi tentado.
FlutuantePointerror Esta exceção é levantada quando uma operação de ponto flutuante falha.

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

Uso de exceção em Python

Exceções em Python são tratadas usando a instrução TRY. A parte do código que pode lançar ou aumentar uma exceção é implementada em um bloco de tentativa. Ao lado do bloco de tentativa, um bloco exceto é implementado para lidar com a exceção. No bloco exceto, pegamos a exceção e decidimos qual operação executar quando encontrarmos essa exceção específica. A sintaxe de escrever a tentativa e exceto blocos é a seguinte:

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

Agora, implementaremos um código simples em nosso script python usando a tentativa e exceto blocos.

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

#Implementing the Try Block
tentar:
impressão (nome)
#Implementando o bloco, exceto
exceto:
impressão ("uma exceção ocorreu")

Saída

Se nenhuma exceção ocorrer, apenas o bloco de tentativa será executado. No bloco exceto, é impressa uma declaração de que ocorreu uma exceção.

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

#Defining a variável de nome
name = "Mark"
#Implementing the Try Block
tentar:
impressão (nome)
#Implementando o bloco, exceto
exceto:
impressão ("uma exceção ocorreu")

Saída

No exemplo acima, o bloco de tentativa é executado e o bloco exceto é ignorado porque o programa não levanta nenhuma exceção. Podemos definir tantos bloqueios, exceto em nosso programa, como queremos. Cada bloco, exceto, lida com um tipo específico de exceção.

#Implementing the Try Block
tentar:
impressão (nome)
#Implementando o bloco Exceto para capturar o erro de nome
Exceto NameError:
print ("A variável não está definida")
#Implementando o bloco, exceto
exceto:
print ("algo deu errado além do erro de nome")

Saída

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

#Implementing the Try Block
tentar:
impressão (nome)
#Implementando o bloco, exceto para capturar o erro
Exceto exceção como exp:
Imprima (Exp.__aula__)
#Implementando o bloco, exceto
exceto:
print ("algo deu errado além do erro de nome")

Saída

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

Da mesma forma, vejamos um exemplo da classe "ZerodivisisionError".

#Implementing the Try Block
tentar:
x = 1/0
impressão (x)
#Implementando o bloco, exceto para capturar o erro
Exceto exceção como exp:
Imprima (Exp.__aula__)
#Implementando o bloco, exceto
exceto:
print ("algo deu errado além do erro de nome")

Saída

O bloco else

O bloco else é usado com os blocos de tentativa e exceção. O bloco else define um pedaço de código que é executado se o bloco de tentativa é executado com sucesso e nenhum erro ocorre. Às vezes, pode ser necessário imprimir uma mensagem ou executar uma função quando o bloco de tentativa for executado com sucesso. Por esse motivo, podemos implementar o bloco else com a tentativa e exceto blocos.

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

#Implementing the Try Block
tentar:
x = 1/2
impressão (x)
#Implementando o bloco, exceto para capturar o erro
Exceto exceção como exp:
Imprima (Exp.__aula__)
#Implementando o bloco else
outro:
impressão ("tudo correu bem")

Saída

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

Vamos agora olhar para outro exemplo usando o bloco else.

#Implementing the Try Block
tentar:
name = "Mark"
#Implementando o bloco, exceto para capturar o erro
Exceto exceção como exp:
Imprima (Exp.__aula__)
#Implementando o bloco else
outro:
print ("O nome é:", nome)

Saída

No exemplo acima, a variável de nome é definida dentro do bloco de tentativa e é impressa no bloco else.

O bloco finalmente

O finalmente O bloco contém o pedaço de código que deve ser executado, independentemente de o bloco de tentativa aumentar uma exceção. O bloco finalmente é opcional e é declarado com o bloco de tentativa. Por exemplo, se abrimos um arquivo de texto para ler o bloco de tentativa e ele levanta um erro ou exceção, é melhor envolver o arquivo no bloco finalmente, mesmo que o erro ocorra. Vamos implementar o bloqueio finalmente em nosso script python.

#Implementing the Try Block
tentar:
Imprimir (my_dict)
#Implementando o bloco, exceto para capturar o erro
Exceto exceção como exp:
Imprima (Exp.__aula__)
#Implementing o bloco finalmente
finalmente:
print ("Este é o bloco finalmente")
print ("O bloco finalmente é executado")

Saída

Na saída, pode -se observar que o bloco de tentativa levanta uma exceção. No entanto, o bloco finalmente é executado no final.

Agora, vamos abrir um arquivo de texto no bloco de tentativa, que levanta uma exceção enquanto o arquivo incluído no bloco finalmente.

#Implementing the Try Block
tentar:
FileObj = aberto ("MyStudent.xml "," r ")
FileObj.procure (-2)
Print (FileObj.readLines ())
#Implementando o bloco, exceto
Exceto exceção como exp:
Imprima (Exp.__aula__)
#Implementing o bloco finalmente
finalmente:
FileObj.fechar()
Print ("O arquivo está fechado com sucesso")

Saída

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

Levantar uma exceção

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

Agora aumentaremos algumas exceções usando a palavra -chave Raise. No exemplo seguinte, a condição se é implementada para verificar números não negativos. Se houver números não negativos, a exceção "números não negativos não são permitidos" será aumentado.

#DeClaring Duas variáveis ​​de números
num1 = 20
num2 = -10
if ((num1<0) | (num2<0)):
Levantar exceção ("números não negativos não são permitidos")
outro:
Imprimir (num1+num2)

Saída

Conclusão

Uma exceção ocorre em resposta a um erro no tempo de execução. No Python, podemos lidar com exceções usando a tentativa e exceto blocos. Este artigo explicou como usar exceções em Python através de vários exemplos.