Manipulação de exceção em Python

Manipulação de exceção em Python
Quando executamos qualquer código que contenha erros, o erro é exibido na saída, interrompendo a execução do programa. Alguns erros podem não ser reconhecidos pelos usuários e criar uma situação indesejável para eles. Mas se o erro puder ser exibido em um formato compreensível para os usuários, é fácil para eles saber o motivo do erro. Em qualquer programação orientada a objetos, Try-Catch ou Try-Catch-Finally O bloco é usado para lidar com erros e exibi -los em um formato legível, chamado de manuseio de exceção. Como o manuseio de exceções pode ser feito no script python é mostrado neste tutorial.

Sintaxe:

tentar:
bloquear…
Exceto exceção:
manipulador ..
outro:
bloquear…
finalmente:
bloquear…

Aqui, se ocorrer algum erro ao executar as declarações de tentar Bloco então uma exceção será gerada e lançará o erro ao correspondente exceto manipulador. Vários erros podem ser gerados em um único tentar Bloqueie e então você tem que escrever múltiplos exceto manipuladores. As declarações do outro o bloco será executado se nenhum erro ocorrer no tentar bloquear. As declarações do finalmente o bloco será executado se ocorrer algum erro ou não ocorrer. Para manuseio de exceção, usando outro e finalmente Os blocos não são essenciais. Diferentes tipos de manuseio de exceção no Python são explicados na próxima parte do tutorial.

Exemplo 1: Uso de um único bloco Try-Except para validar dados numéricos:

Este exemplo mostra o uso muito simples do manuseio de exceção no Python. No tentar Bloco, duas entradas serão retiradas do usuário, um é um valor de string e outro é um valor numérico. Se o usuário digitar algum valor de sequência no lugar do valor numérico para a segunda entrada, então, o ValueError a exceção será gerada por Python3 e uma mensagem de erro personalizada será exibida de exceto bloquear.

#!/usr/bin/Env Python3
# Defina o bloco de tentativa
tentar:
# Pegue quaisquer dados como uma string
nome = entrada ("Digite seu nome: \ n")
# Pegue quaisquer dados numéricos
Age = int (entrada ("Digite sua idade: \ n")))
# Imprima os dados formatados com nome e idade
print ("Olá %s, você tem %de anos." %(nome idade))
# Lidar com erros de entrada
Exceto (ValueError):
# Imprimir mensagem de erro personalizado
impressão ("entrada errada! Você tem que digitar um número como sua idade.")

Saída:

O script é executado duas vezes na saída a seguir com a entrada errada e a entrada correta. A primeira vez, quando o tipo de usuário 'Trinta e um' como valor de idade para a segunda entrada que leva o valor numérico, então um ValueError é gerado e a mensagem de erro é exibida a partir do bloco, exceto. Na segunda vez, nenhum erro é gerado para valores de entrada corretos.

Exemplo 2: Uso de múltiplos, exceto bloco para lidar com vários erros:

Como você pode usar múltiplas, exceto o bloco para lidar com vários erros, é mostrado neste exemplo. Dois tipos de erros serão tratados neste script. Um nome de arquivo é tomado como entrada do usuário para leitura. Se o arquivo não existir, ele gerará um ioerror exceção e se o arquivo existir, mas vazio, ele aumentará uma exceção personalizada. Para isso, dois, exceto os blocos, são usados ​​neste script. Quando nenhum dos erros ocorre, o conteúdo do arquivo será exibido.

#!/usr/bin/Env Python3
# Importar o módulo OS
OS de importação
# Defina o bloco de tentativa
tentar:
# Pegue o nome do arquivo como entrada
nome do arquivo = input ('digite um nome de arquivo \ n')
# Abra o arquivo para leitura
file_handler = aberto (nome do arquivo)
# Defina o ponte de busca de 0 para o final do arquivo
file_handler.procure (0, OS.Seek_end)
# Leia o tamanho do arquivo em bytes
size = file_handler.dizer()
# Imprima o conteúdo do arquivo e o número de caracteres do arquivo
se (tamanho> 0):
# Defina o ponte para o início do arquivo
file_handler.procure (0)
# Leia e armazene o conteúdo do arquivo em uma variável
File_Content = File_Handler.ler()
print ("\ nO conteúdo do arquivo dado abaixo \ n")
Print (file_content)
Imprima ("O tamanho do arquivo é %d bytes" %tamanho)
outro:
# Levante exceção se o arquivo estiver vazio
Rantenha exceção ('o arquivo não tem conteúdo.')
# Imprima a mensagem de erro se o arquivo não existir
Exceto ioerror como erro:
Imprimir (erro)
# Imprima a mensagem de erro se o arquivo estiver vazio
Exceto exceção como e:
print ('erro: %s' %e)
# Imprima a mensagem se não houver erro
outro:
Imprimir ('nenhum erro ocorre')

Saída:

O script é executado por três vezes. Na primeira vez, é dado um nome de arquivo que não existe e a saída mostra uma mensagem ioerror. Na segunda vez, é dado um nome de arquivo que existe, mas não tem conteúdo e a saída mostra uma mensagem personalizada. Na terceira vez, é dado um nome de arquivo que existe e contém texto. A saída mostra o conteúdo do arquivo.

EXEMPLO 3: Uso do Bloco Try-Except-Finalmente para lidar com o erro de divisão

O exemplo mostra o uso de um bloco de tentativa de exceção-final para lidar com o erro de divisão. Dois valores numéricos serão tomados como entrada e dividir a primeira entrada por segunda entrada no bloco de tentativa. Dois tipos de erros podem ocorrer aqui. Um é ValueError Quando o usuário digitará qualquer valor sem número e outro é ZerodivisionError Quando o usuário levará 0 Como segunda entrada.

#!/usr/bin/Env Python3
# Defina o bloco de tentativa
tentar:
# Digite dois números de flutuação
n1 = float (entrada ('digite um número \ n'))
n2 = float (entrada ('digite um número \ n'))
# Divida esses números
Divisão = N1 / N2
# Lidera erros
Exceto (ZerodivisionError, ValueError):
Print ("Dividido por erro zero ou o valor não é um número")
# Mensagem de impressão se não ocorrer erro
outro:
print ("O resultado da divisão é %f" %divisão)
# Imprimir mensagem se ocorrer um erro ou não ocorre
finalmente:
print ("The End")

Saída:

Aqui, o script é executado por duas vezes com entradas corretas e com a segunda entrada como 0. Portanto, a segunda exceção é gerada e exibe a mensagem de erro.

Conclusão:

Este tutorial mostra o processo básico de manuseio de exceções no Python3 para os novos usuários do Python. Os leitores poderão entender o que é o manuseio de exceções e como se aplicar no script Python depois de praticar os exemplos acima.