Python Tratamento de exceções: try, catch, finalmente e raise [Exemplo]

O que é um tratamento de exceção Python?

Uma exceção é um erro que ocorre no momento da execução de um programa. No entanto, durante a execução de um programa, Python gera uma exceção que deve ser tratada para evitar que seu programa trave. Em Python linguagem, 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 acontece com pouca frequência. Quando o método não é capaz de tratar a exceção, ele é lançado para sua função chamadora. Eventualmente, quando uma exceção é lançada fora da função principal, o programa é encerrado abruptamente.

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.
  • Levantamento em multibanco superior ao 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ções permite separar o código de tratamento de erros do código normal.
  • Uma exceção é um Python objeto o que representa um erro.
  • Tal como acontece com os comentários de código, as exceções ajudam você a se lembrar do que o programa espera.
  • Ele esclarece o código e melhora a legibilidade.
  • Permite estimular consequências à medida que o tratamento de erros ocorre em um local e de uma maneira.
  • Uma exceção é um método conveniente para tratar mensagens de erro.
  • In Python, você pode gerar uma exceção no programa usando o método raise exceção.
  • Gerar uma exceção ajuda a interromper a execução atual do código e retorna a exceção à expectativa até que seja tratada.
  • Processamento de exceções para componentes que não podem tratá-las diretamente.

Regras de exceções

Aqui estão algumas regras essenciais de Python tratamento de exceções:

  • 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 seja sintaticamente correta, ela poderá 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.

Python Mecanismo de tratamento de exceções

O tratamento de exceções é gerenciado pelas 5 palavras-chave a seguir:

  1. tentar
  2. captura
  3. finalmente
  4. jogar

Python Declaração de tentativa

Uma instrução try inclui a palavra-chave try, seguida por dois pontos (:) e um conjunto de código no qual podem ocorrer exceções. Possui 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 aquela instrução try específica.

Caso ocorra alguma exceção em um conjunto de testes, o conjunto de testes expira e o controle do programa é transferido para o manipulador correspondente, exceto após o conjunto de testes.

Syntax:
try:
statement(s)

A declaração de captura

Os blocos catch 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 variar, até uma categoria abrangente de exceções.

Regras para bloco catch:

  • Você pode definir um bloco catch usando a palavra-chave catch
  • O parâmetro Catch Exception está sempre 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 da subclasse para a 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 criar um bloco de código que segue um bloco try-catch.

Finalmente, a cláusula é opcional. Pretende-se definir ações de limpeza que deverão 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.

Levantar declaração 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 nenhum.
Exemplo:
A Python exceção pode ser qualquer valor como uma string, classe, número ou objeto. A maior parte destas excepções levantadas por Python core são classes com um argumento que é uma instância da classe.

importante Python erros

Tipo de Erro Descrição
Erro Aritmético ArithmeticError atua como uma classe base para todas as exceções aritméticas. É gerado para erros em operações aritméticas.
Erro de importação 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 se o módulo não está presente no caminho padrão.
Erro de índice Um IndexErro é gerado quando você tenta consultar 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.
NomeErro 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 valor adequado.
EOFerror Este tipo de erro surge quando uma das funções integradas (input() ou raw_input()) atinge uma condição EOF sem ler nenhum dado.
Erro ZeroDivison Este tipo de erro gerado quando ocorre divisão ou módulo por zero para todos os tipos numéricos.
IOError- Este tipo de erro surge quando uma operação de entrada/saída falha.
erro de sintaxe SyntaxErrors gerados quando há um erro em Python sintaxe.
Erro de recuo Este erro surge quando o recuo não está definido corretamente

Outro importante Python Exceções

Exceção Descrição
ArithmeticException Erro aritmético, como divisão por zero.
ArraylndexOutOfBoundsException O índice da matriz está fora dos limites.
ArrayStoreException A atribuição ajuda você a identificar o elemento da matriz de um tipo incompatível.
ClassCastException Elenco inválido
MlegalMonitorStateException Operação ilegal do monitor, como aguardar um thread desbloqueado.
MlegalStateException O ambiente ou aplicativo está em estado errado.
ClassNotFoundException Classe não encontrada.
CloneNotSupportedException Tentativa de clonar um objeto que não implementa a interface Cloneable.
Exceção de acesso ilegal O acesso a uma aula é negado.
Exceção de Instanciação Ocorre quando você tenta criar um objeto de uma interface ou classe abstrata.
CloneNotSupportedException Tentativa de 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 tipos marcados e desmarcados.
Erros ocorrem em tempo de execução desconhecidos pelo 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:
Erro de falta de memória
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 acontece com pouca frequência.
  • Exemplos comuns de exceção são 1) Divisão por Zero, 2) Acessar um arquivo que não existe, 3) Adição de dois tipos incompatíveis.
  • Uma exceção é um Python objeto que representa um erro.
  • Uma instrução try inclui a palavra-chave try, seguida por dois pontos (:) e um conjunto de código no qual podem ocorrer exceções. Possui 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.