como usar melhor, exceto em Python-especialmente para iniciantes
na programação Python, o tratamento de exceções permite que um programador permita o controle de fluxo. E não tem. de exceções incorporadas a erros de captura no caso de seu código quebrar. Usar o try-except é a forma mais comum e natural de lidar com erros inesperados, juntamente com muitas outras construções de manuseio de exceção. Neste tutorial, você poderá explorar algumas das melhores técnicas para usar try-exceto em Python.
Tratamento de erros ou tratamento de exceções em Python pode ser aplicado configurando exceções. Usando um bloco de tentativa, você pode implementar uma exceção e lidar com o erro dentro de um bloco exceto. Sempre que o código quebra dentro de um bloco de tentativa, o fluxo de código regular irá parar e o controle será comutado para o bloco exceto para lidar com o erro.
também Ler-Aprender o tratamento de exceções em Python do zero.
Por que utilizar a cláusula “Try-Except / Try-Except-else”? Com a ajuda de tentar-exceto e tentar-exceto-caso contrário, você pode evitar muitos problemas desconhecidos que podem surgir de seu código. Por exemplo, o código Python usando o estilo LBYL (Look before you leap) pode levar a condições de corrida. Aqui, a cláusula de tentativa-Excepto pode vir salvar-te. Além disso, há casos em que seu código depende criticamente de algumas informações que podem ficar desatualizadas até o momento em que você recebe. Por exemplo, o código fazendo chamadas para os.caminho.existe ou faz fila.full pode falhar, pois essas funções podem retornar dados que se tornam obsoletos no momento em que você usá-lo. A escolha mais sábia aqui seria seguir o estilo de tentar-exceto-outro em seu código para gerenciar os casos acima de forma mais confiável.
levantar exceções também é permitido em Python. Significa que você pode lançar ou levantar uma exceção sempre que for necessário. Você pode fazê-lo simplesmente ligando a partir do seu código. Uma vez levantado, a exceção vai parar a execução atual como de costume e vai mais acima na pilha de chamadas até ser tratado.por que usar exceções? Eles não só ajudam a resolver problemas populares como as condições de corrida, mas também são muito úteis no controle de erros em áreas como loops, tratamento de arquivos, comunicação de banco de dados, acesso à rede e assim por diante.portanto, vamos cobrir problemas mais amplos e fornecer soluções neste post. Por favor, note que o tratamento de exceções é uma arte que lhe traz imensos poderes para escrever código robusto e de qualidade. Então, prepare-se para ler algumas notas sobre exceções, juntamente com as melhores maneiras de lidar com elas.
deve ler-tudo o que deve saber sobre o ficheiro Python Copy .
Python: Dicas para Usar Try-Exceto, Tente Salvo outra Coisa, e Mais
- Como lidar com um arbitrário exceção
- Pegar várias exceções em um, exceto bloco
- Tratamento de exceções vários com excepção do bloco
- Re-raise exceções no Python
- Quando usar a cláusula else
- Fazer uso de
- Utilizar a palavra chave para pegar específicos tipos de exceção
- Melhor prática para manualmente aumentando exceções
- Como ignorar erros e continuar a execução
- erros de exceção mais comuns em Python
- Exemplos de exceções mais comuns em Python
1. Como lidar com uma exceção arbitrária
às vezes, você pode precisar de uma maneira de permitir qualquer exceção arbitrária e também quer ser capaz de exibir a mensagem de erro ou exceção.
é facilmente alcançável usando as exceções em Python. Verifique o código abaixo. Durante o teste, você pode colocar o código dentro do bloco de tentativa no exemplo abaixo.
try: #your codeexcept Exception as ex: print(ex)
Back to top
2. Capturar várias exceções em um, exceto bloco
você pode pegar várias exceções em um único, exceto bloco. Veja o exemplo abaixo.
except (Exception1, Exception2) as e: pass
por favor, note que você pode separar as exceções da variável com uma vírgula Que é aplicável no Python 2.6/2.7. Mas não podes fazê-lo no Python 3. Então, você deve preferir usar a palavra-chave.
de volta ao topo
3. Lidar com várias exceções com uma, exceto bloco
Existem muitas maneiras de lidar com múltiplas exceções. O primeiro deles requer a colocação de todas as exceções que provavelmente ocorrerão na forma de uma tupla. Por favor, Veja de baixo.
try: file = open('input-file', 'open mode')except (IOError, EOFError) as e: print("Testing multiple exceptions. {}".format(e.args))
o próximo método é lidar com cada exceção em um bloco dedicado exceto. Você pode adicionar o máximo de blocos exceto quando necessário. Veja o exemplo abaixo.
try: file = open('input-file', 'open mode')except EOFError as ex: print("Caught the EOF error.") raise exexcept IOError as e: print("Caught the I/O error.") raise ex
a última, mas não a última, é a de utilizar o exceto sem mencionar qualquer atributo de exceção.
try: file = open('input-file', 'open mode')except: # In case of any unhandled error, throw it away raise
este método pode ser útil se você não tiver nenhuma pista sobre a exceção possivelmente lançada pelo seu programa.4. Re-raising exceptions in Python
Exceptions once raised keep moving up to the calling methods until handled. Embora você possa adicionar uma cláusula exceto que poderia apenas ter uma chamada sem qualquer argumento. Vai resultar na reabertura da excepção.
ver o código de exemplo abaixo.
try: # Intentionally raise an exception. raise Exception('I learn Python!')except: print("Entered in except.") # Re-raise the exception. raise
Saída:
Entered in except.Traceback (most recent call last): File "python", line 3, in <module>Exception: I learn Python!
Voltar ao início
5. Quando usar a outra cláusula
Use uma outra cláusula logo após o bloco try-except. A outra cláusula só será atingida se não for aberta qualquer excepção. A outra declaração deve sempre preceder os blocos exceto.
em outros blocos, você pode adicionar o código que deseja executar quando não ocorreram erros.
ver o exemplo abaixo. Nesta amostra, você pode ver um laço while rodando infinitamente. O código está pedindo entrada do Usuário e, em seguida, processando-o usando a função incorporada. Se o Usuário introduzir um valor zero, então o bloco exceto será atingido. Caso contrário, o código vai fluir através do outro bloco.
while True: # Enter integer value from the console. x = int(input()) # Divide 1 by x to test error cases try: result = 1 / x except: print("Error case") exit(0) else: print("Pass case") exit(1)
Back to top
6. Faça uso de
Se você tem um código que você deseja executar em todas as situações, então escreva-o dentro do . Python irá sempre executar as instruções codificadas no . É a forma mais comum de fazer tarefas de limpeza. Você também pode garantir que a limpeza passa.
um erro é pego pela cláusula de tentativa. Após o código no bloco exceto ser executado, as instruções no iria correr.
Por Favor, note que a Será sempre executado, mesmo que você tenha retornado antes dele.
ver o exemplo abaixo.
try: # Intentionally raise an error. x = 1 / 0except: # Except clause: print("Error occurred")finally: # Finally clause: print("The is hit")
saída:
Error occurredThe is hit
Back to top
7. Utilizar a palavra chave para pegar específicos tipos de exceção
Com a ajuda de <identificador>, você pode criar um novo objeto. E você também pode o objeto de exceção. Aqui, o exemplo abaixo, estamos criando o objeto IOError e, em seguida, usá-lo dentro da cláusula.
try: # Intentionally raise an error. f = open("no-file")except IOError as err: # Creating IOError instance for book keeping. print("Error:", err) print("Code:", err.errno)
Saída:
('Error:', IOError(2, 'No such file or directory'))('Code:', 2)
Voltar ao início
8. As melhores práticas para levantar manualmente exceções
evitam levantar exceções genéricas porque se você fizer isso, então todas as outras exceções mais específicas têm que ser pegas também. Por conseguinte, a melhor prática consiste em colocar a excepção mais específica próxima do seu problema.
mau exemplo.
def bad_exception(): try: raise ValueError('Intentional - do not want this to get caught') raise Exception('Exception to be handled') except Exception as error: print('Inside the except block: ' + repr(error)) bad_exception()
Saída:
Inside the except block: ValueError('Intentional - do not want this to get caught',)
Melhor Prática:
Aqui, estamos criando um tipo específico de exceção, não um genérico. E nós também estamos usando a opção args para imprimir os argumentos incorretos se houver algum. Vamos ver o exemplo abaixo.
try: raise ValueError('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four') except ValueError as err: print(err.args)
Saída:
('Testing exceptions: The input is in incorrect order', 'one', 'two', 'four')
Voltar ao início
9. Como saltar através de erros e continuar a execução
idealmente, você não deve estar fazendo isso. Mas se você ainda quiser fazer, então siga o código abaixo para verificar a abordagem certa.
try: assert Falseexcept AssertionError: passprint('Welcome to Prometheus!!!')
saída:
Welcome to Prometheus!!!
de volta ao topo
agora, dê uma olhada em algumas das exceções mais comuns em Python e seus exemplos.
a maioria dos erros de exceção mais comuns
- IOError-ocorre em erros como um arquivo não consegue abrir.
- ImportError-se um módulo python não puder ser carregado ou localizado.
- Valuerror-ocorre se uma função recebe um argumento do tipo certo, mas um valor inapropriado.
- KeyboardInterrupt – Ele é atingido quando o usuário insere a chave de interrupção (i.e. Control-C ou Del)
- EOFError – fica elevado, se a funções de entrada (input()/raw_input()) bateu um fim-de-condição de arquivo (EOF), mas sem a leitura de todos os dados.
de volta ao topo
exemplos de exceções mais comuns
except IOError:print('Error occurred while opening the file.')except ValueError:print('Non-numeric input detected.')except ImportError:print('Unable to locate the module.')except EOFError:print('Identified EOF error.')except KeyboardInterrupt:print('Wrong keyboard input.')except:print('An error occurred.')
de volta ao topo
resumo – como usar da melhor forma-exceto em Python
durante a programação, erros são obrigados a acontecer. É um facto que ninguém pode ignorar. E pode haver muitas razões para erros como má entrada de usuário, permissão de arquivo insuficiente, a indisponibilidade de um recurso de rede, memória insuficiente ou, muito provavelmente, erro do programador.
de qualquer forma, tudo isso pode ser tratado se o seu código usar o manuseio de exceção e implementá-lo com construções como tentar-exceto, ou tr-exceto-else, tentar-exceto-finalmente. Hope, terias gostado de ler o tutorial acima.se gostou do post, então não perca de compartilhá-lo com amigos e nas redes sociais (facebook/twitter).
Best,
TechBeamers.