Manipulação de exceção do Python:tente, pegue, finalmente e aumente [Exemplo]
O que é um tratamento de exceção em Python?
Uma exceção é um erro que ocorre no momento da execução de um programa. No entanto, ao executar um programa, o Python gera uma exceção que deve ser tratada para evitar que seu programa falhe. Na linguagem Python, as exceções são acionadas automaticamente em caso de erros ou podem ser acionadas e interceptadas pelo seu código.
A exceção indica que, embora o evento possa ocorrer, esse tipo de evento ocorre com pouca frequência. Quando o método não é capaz de manipular a exceção, ele é lançado para sua função de chamador. Eventualmente, quando uma exceção é lançada fora da função principal, o programa é encerrado abruptamente.
Neste tutorial de manipulação excepcional do Python, você aprenderá:
- O que é uma exceção em Python?
- Exemplos comuns de exceção
- Por que você deve usar exceções?
- Regras de exceções
- Mecanismo de tratamento de exceção do Python
- Instrução Try do Python
- Declaração de captura do Python
- Instrução de aumento em Python
- Erros importantes do Python
- Outras exceções importantes do Python
- Erro x exceções
Exemplos comuns de exceção:
- Divisão por zero
- Acessando um arquivo que não existe.
- Adição de dois tipos incompatíveis
- Tentando acessar um índice inexistente de uma sequência
- Removendo a tabela do servidor de banco de dados desconectado.
- Saque no caixa eletrônico acima do valor disponível
Por que você deve usar exceções?
Aqui estão as razões para usar exceções em Python:
- O tratamento de exceção permite separar o código de tratamento de erros do código normal.
- Uma exceção é um objeto Python que representa um erro.
- Assim como nos comentários de código, as exceções ajudam você a se lembrar do que o programa espera.
- Esclarece o código e melhora a legibilidade.
- Permite que você estimule as consequências à medida que o tratamento de erros ocorre em um lugar e de uma maneira.
- Uma exceção é um método conveniente para lidar com mensagens de erro.
- Em Python, você pode gerar uma exceção no programa usando o método raise exception.
- Gerar uma exceção ajuda você a interromper a execução do código atual e retornar a exceção à expectativa até que ela seja tratada.
- Exceções de processamento para componentes que não podem lidar com elas diretamente.
Regras de Exceções
Aqui estão algumas regras essenciais do tratamento de exceções do Python:
- As exceções devem ser objetos de classe
- Para exceções de classe, você pode usar a instrução try com uma cláusula except que menciona uma classe específica.
- Mesmo que uma instrução ou expressão esteja sintaticamente correta, ela pode exibir um erro quando for feita uma tentativa de executá-la.
- Os erros encontrados durante a execução são chamados de exceções e não são incondicionalmente fatais.
Mecanismo de tratamento de exceção do Python
O tratamento de exceções é gerenciado pelas 5 palavras-chave a seguir:
- tente
- pegar
- finalmente
- lançar
Declaração do Python Try
Uma instrução try inclui a palavra-chave try, seguida por dois pontos (:) e um conjunto de códigos no qual podem ocorrer exceções. Tem uma ou mais cláusulas.
Durante a execução da instrução try, se nenhuma exceção ocorrer, o interpretador ignora os manipuladores de exceção para essa instrução try específica.
No caso, se ocorrer alguma exceção em uma suíte try, a suíte try expirará e o controle do programa será transferido para o manipulador exceto correspondente após a suíte try.
Syntax: try: statement(s)
A declaração de captura
Os blocos de captura recebem um argumento por vez, que é o tipo de exceção que provavelmente será capturado. Esses argumentos podem variar de um tipo específico de exceção que pode ser variado a uma categoria abrangente de exceções.
Regras para bloqueio de captura:
- Você pode definir um bloco catch usando a palavra-chave catch
- O parâmetro Catch Exception é sempre colocado entre parênteses
- Ele sempre representa o tipo de exceção que o bloco catch trata.
- Um código de tratamento de exceção é escrito entre duas {} chaves.
- Você pode colocar vários blocos catch em um único bloco try.
- Você pode usar um bloco catch somente após o bloco try.
- Todo o bloco catch deve ser ordenado da exceção de subclasse para superclasse.
Exemplo:
try } catch (ArrayIndexOutOfBoundsException e) { System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) { System.err.printin("Caught second " + e.getMessage()); }
Finalmente declaração em Python
Finalmente, o bloco sempre é executado independentemente de uma exceção ser lançada ou não. A palavra-chave final permite que você crie um bloco de código que segue um bloco try-catch.
Finalmente, a cláusula é opcional. Pretende-se definir as ações de limpeza que devem ser executadas em todas as condições.
try: raise KeyboardInterrupt finally: print 'welcome, world!' Output Welcome, world! KeyboardInterrupt
Finalmente, a cláusula é executada antes da instrução try.
Instrução de aumento em Python
A instrução raise especifica um argumento que inicializa o objeto de exceção. Aqui, uma vírgula segue o nome da exceção e o argumento ou tupla do argumento que segue a vírgula.
Sintaxe:
raise [Exception [, args [, traceback]]]
Nesta sintaxe, o argumento é opcional e, no momento da execução, o valor do argumento de exceção é sempre none.
Exemplo:
Uma exceção do Python pode ser qualquer valor como uma string, classe, número ou um objeto. A maioria dessas exceções que são levantadas pelo núcleo do Python são classes com um argumento que é uma instância da classe.
Erros importantes do Python
Tipo de erro | Descrição |
---|---|
ArithmeticError | ArithmeticError atua como uma classe base para todas as exceções aritméticas. Ele é gerado para erros em operações aritméticas. |
ImportError | ImportError é gerado quando você está tentando importar um módulo que não está presente. Este tipo de exceção ocorre se você cometeu um erro de digitação no nome do módulo ou o módulo que não está presente no caminho padrão. |
IndexError | Um IndexError é gerado quando você tenta referenciar uma sequência que está fora do intervalo. |
KeyError | Quando uma chave específica não é encontrada em um dicionário, uma exceção KeyError é gerada. |
NameError | Um NameError é gerado quando um nome é referido em um código que nunca existe no namespace local ou global. |
ValueError | O erro de valor é gerado quando uma função ou operação interna recebe um argumento que pode ser do tipo correto, mas não possui um valor adequado. |
EOFerror | Esse tipo de erro ocorre quando uma das funções internas (input() ou raw_input()) atinge uma condição EOF sem ler nenhum dado. |
ZeroDivisionError | Esse tipo de erro é gerado quando a divisão ou módulo por zero ocorre para todos os tipos numéricos. |
IOError- | Esse tipo de erro é gerado quando uma operação de entrada/saída falha. |
sintaxError | SyntaxErrors gerados quando há um erro na sintaxe do Python. |
Erro de recuo | Este erro é gerado quando o recuo não está definido corretamente |
Outras exceções importantes do Python
Exceção | Descrição |
---|---|
ArithmeticException | Erro aritmético, como divisão por zero. |
ArraylndexOutOfBoundsException | O índice de matriz está fora dos limites. |
ArrayStoreException | A atribuição ajuda você ao elemento de matriz de um tipo incompatível. |
ClassCastException | Transmissão inválida |
MlegalMonitorStateException | Operação de monitor ilegal, como aguardar um thread desbloqueado. |
MlegalStateException | O ambiente ou o aplicativo está no estado errado. |
ClassNotFoundException | Classe não encontrada. |
CloneNotSupportedException | Tente clonar um objeto que não implementa a interface Cloneable. |
Exceção de acesso ilegal | O acesso a uma aula foi negado. |
Exceção de instância | Ocorre quando você tenta criar um objeto de uma interface ou classe abstrata. |
CloneNotSupportedException | Tente clonar um objeto que não implementa a interface. |
Erro vs. Exceções
Erro | Exceções |
---|---|
Todos os erros em Python são do tipo não verificado. | As exceções incluem o tipo marcado e não verificado. |
Ocorrem erros em tempo de execução desconhecidos para o compilador. | As exceções podem ser recuperadas tratando-as com a ajuda de blocos try-catch. |
Os erros são causados principalmente pelo ambiente em que um aplicativo está sendo executado. | O próprio aplicativo causa exceções. |
Exemplos: OutofMemoryError | Exemplos: Exceções verificadas, exceção SQL, NullPointerException, etc. |
Resumo
- Uma exceção é um erro que ocorreu durante a execução de um programa.
- A exceção indica que, embora o evento possa ocorrer, esse tipo de evento ocorre com pouca frequência.
- Exemplos comuns de exceção são 1) Divisão por Zero, 2) Acesso a um arquivo que não existe, 3) Adição de dois tipos incompatíveis.
- Uma exceção é um objeto Python que representa um erro.
- Uma instrução try inclui a palavra-chave try, seguida por dois pontos (:) e um conjunto de códigos no qual podem ocorrer exceções. Tem uma ou mais cláusulas.
- Os blocos catch recebem um argumento por vez, que é o tipo de exceção que provavelmente será capturado.
- A instrução raise especifica um argumento que inicializa o objeto de exceção.
- Finalmente, o bloco sempre é executado independentemente de uma exceção ser lançada ou não.
python