Pitão

Tratamento de exceções em Python

Tratamento de exceções em Python
Quando executamos qualquer código que contém erro, o erro é exibido na saída, parando 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 pode ser exibido em um formato compreensível para os usuários, então é fácil para eles saberem o motivo do erro. Em qualquer programação orientada a objetos, tentar pegar ou tentar pegar finalmente bloco é usado para lidar com erros e exibi-los em um formato legível que é chamado de tratamento de exceções. Como o tratamento de exceções pode ser feito no script Python é mostrado neste tutorial.

Sintaxe:

tentar:
quadra…
exceto exceção:
manipulador ..
senão:
quadra…
finalmente:
quadra…

Aqui, se ocorrer algum erro durante a execução das instruções de tentar bloco, em seguida, uma exceção será gerada e lançará o erro para o correspondente exceto manipulador. Vários erros podem ser gerados em um único tentar bloco e então você tem que escrever vários exceto manipuladores.  As declarações do senão bloco será executado se nenhum erro ocorrer no tentar quadra. As declarações do finalmente o bloco será executado se ocorrer algum erro ou não. Para tratamento de exceções, usando senão e finalmente blocos não são essenciais. Diferentes tipos de tratamento de exceção em 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 de tratamento de exceções em Python. No tentar bloco, duas entradas serão obtidas do usuário, uma é um valor de string e outra é um valor numérico.  Se o usuário digitar qualquer valor de string no lugar do valor numérico para a segunda entrada, o ValueError exceção será gerada por python3 e uma mensagem de erro personalizada será exibida de exceto quadra.

#!/ usr / bin / env python3
# Defina o bloco de teste
tentar:
# Pegue todos os dados como uma string
name = input ("Digite seu nome: \ n")
# Pegue quaisquer dados numéricos
age = int (input ("Digite sua idade: \ n"))
# Imprima os dados formatados com nome e idade
print ("Olá% s, você tem% s anos de idade." %(nome idade))
# lidar com erros de entrada
exceto (ValueError):
# Imprimir mensagem de erro personalizada
print ("entrada errada! Você tem que digitar um número de acordo com sua idade.")

Resultado:

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

Exemplo-2: Uso de vários blocos, exceto para lidar com vários erros:

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

#!/ usr / bin / env python3
# Importar módulo de sistema operacional
importar os
# Defina o bloco de teste
tentar:
# Pegue o nome do arquivo como entrada
filename = input ('Insira um nome de arquivo \ n')
# Abra o arquivo para leitura
file_handler = open (nome do arquivo)
# Defina o ponto de busca de 0 até o final do arquivo
file_handler.procurar (0, os.SEEK_END)
# Leia o tamanho do arquivo em bytes
size = file_handler.contar()
# Imprime o conteúdo do arquivo e o número de caracteres do arquivo
se (tamanho> 0):
# Defina o ponter para o início do arquivo
file_handler.procurar (0)
# Leia e armazene o conteúdo do arquivo em uma variável
file_content = file_handler.leitura()
imprimir ("\ nO conteúdo do arquivo fornecido abaixo \ n")
imprimir (file_content)
print ("O tamanho do arquivo é% d bytes"% size)
senão:
# Levanta uma exceção se o arquivo estiver vazio
raise Exception ('O arquivo não tem conteúdo.')
# Imprime a mensagem de erro se o arquivo não existir
exceto IOError como erro:
imprimir (erro)
# Imprime a mensagem de erro se o arquivo estiver vazio
exceto exceção como e:
imprimir ('Erro:% s'% e)
# Imprime a mensagem se não houver erro
senão:
imprimir ('Nenhum erro ocorre')

Resultado:

O script é executado três vezes. Na primeira vez, é fornecido um nome de arquivo que não existe e a saída mostra uma mensagem IOError. Na segunda vez, é fornecido um nome de arquivo que existe, mas não tem conteúdo e a saída mostra uma mensagem personalizada. Na terceira vez, é fornecido 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-finally para lidar com o erro de divisão

O exemplo mostra o uso de um bloco try-except-finally para lidar com o erro de divisão. Dois valores numéricos serão tomados como entrada e dividem a primeira entrada pela segunda entrada no bloco try. Dois tipos de erros podem ocorrer aqui. Um é ValueError quando o usuário digitará qualquer valor sem número e outro será ZeroDivisionError quando o usuário tomará 0 como uma segunda entrada.

#!/ usr / bin / env python3
# Defina o bloco de teste
tentar:
# Insira dois números flutuantes
n1 = float (input ('Digite um número \ n'))
n2 = float (input ('Digite um número \ n'))
# Divida esses números
divisão = n1 / n2
# Manipular erros
exceto (ZeroDivisionError, ValueError):
imprimir ("Dividido por erro zero ou O valor não é um número")
# Imprimir mensagem se nenhum erro ocorrer
senão:
print ("O resultado da divisão é% f"% divisão)
# Imprimir mensagem se ocorrer um erro ou não
finalmente:
imprimir ("Fim")

Resultado:

Aqui, o script é executado duas vezes com ambas as 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 tratamento de exceções em python3 para os novos usuários de python. Os leitores serão capazes de entender o que é o tratamento de exceções e como aplicar no script python após praticar os exemplos acima.

OpenTTD vs Simutrans
Criar sua própria simulação de transporte pode ser divertido, relaxante e extremamente atraente. É por isso que você precisa ter certeza de experiment...
Tutorial OpenTTD
OpenTTD é um dos jogos de simulação de negócios mais populares que existem. Neste jogo, você precisa criar um maravilhoso negócio de transporte. No en...
SuperTuxKart para Linux
SuperTuxKart é um ótimo título projetado para trazer a você a experiência Mario Kart gratuitamente em seu sistema Linux. É bastante desafiador e diver...