O que é uma 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 trave. Na linguagem Python, as exceções são acionadas automaticamente em 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 consegue 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 manuseio 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 manuseio excepcional
- A declaração de tentativa
- A declaração de captura
- A declaração de aumento
- Erros importantes do Python
- Outras exceções importantes do Python
- Erro vs. 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.
- Retirada em caixa eletrônico de mais do que o valor disponível
Por que você deve usar exceções?
Aqui estão os motivos 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 objeto Python que representa um erro.
- Assim como ocorre 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 que você estimule 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 lançar uma exceção no programa usando o método raise exception.
- O lançamento de uma exceção ajuda a interromper a execução do código atual e retorna a exceção para a expecção até que seja tratada.
- Processamento de exceções para componentes que não podem tratá-los diretamente.
Regras de Exceções
Aqui estão algumas regras essenciais para o 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 particular.
- Mesmo se uma instrução ou expressão estiver 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 manuseio excepcional
O tratamento de exceções é gerenciado pelas 5 palavras-chave a seguir:
- tentar
- pegar
- finalmente
- lançar
A declaração de tentativa
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. Possui uma ou mais cláusulas.
Durante a execução da instrução try, se nenhuma exceção ocorreu, o interpretador ignora os tratadores de exceção para aquela instrução try específica.
No caso, se ocorrer alguma exceção em um conjunto try, o conjunto try expira e o controle do programa é transferido para o correspondente, exceto o manipulador que segue o conjunto try.
Syntax:try:statement(s)
A declaração de captura
Blocos catch recebem um argumento por vez, que é o tipo de exceção que provavelmente irá capturar. Esses argumentos podem variar de um tipo específico de exceção, que pode variar, até 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 está sempre entre parênteses
- Ele sempre representa o tipo de exceção que o bloco de captura trata.
- Um código de tratamento de exceção é escrito entre duas {} chaves.
- Você pode colocar vários blocos catch dentro de 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 à superclasse.
Exemplo:
try}catch (ArrayIndexOutOfBoundsException e) {System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {System.err.printin("Caught second " + e.getMessage());}
Finalmente Bloco
Por fim, 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 as ações de limpeza que devem ser executadas em todas as condições.
try:raise KeyboardInterruptfinally:print 'welcome, world!'OutputWelcome, world!KeyboardInterrupt
Finalmente, a cláusula é executada antes da instrução try.
A declaração de aumento
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]]]
Nessa sintaxe, o argumento é opcional e, no momento da execução, o valor do argumento de exceção é sempre nenhum.
Exemplo:
Uma exceção Python pode ser qualquer valor como uma string, classe, número ou um objeto. A maioria dessas exceções 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. É gerado para erros em operações aritméticas. |
ImportError | ImportError é gerado quando você está tentando importar um módulo que não existe. Este tipo de exceção ocorre se você cometeu um erro de digitação no nome do módulo ou no módulo que não está presente no caminho padrão. |
IndexError | Um IndexError é gerado quando você tenta se referir a 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 no 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 tem um valor adequado. |
EOFerror | Este tipo de erro surge quando uma das funções internas (input () ou raw_input ()) atinge uma condição EOF sem ler nenhum dado. |
ZeroDivisonError | Este 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. |
erro de sintaxe | SyntaxErrors gerado quando há um erro na sintaxe do Python. |
IndentationError | Este erro é gerado quando o recuo não é definido corretamente |
Outras exceções importantes do Python
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 a definir o elemento da matriz de um tipo incompatível. |
ClassCastException | Elenco inválido |
MlegalMonitorStateException | Operação ilegal do monitor, como esperar por um thread desbloqueado. |
MlegalStateException | O ambiente ou aplicativo está em estado incorreto. |
ClassNotFoundException | Classe não encontrada. |
CloneNotSupportedException | Tenta clonar um objeto que não implementa a interface clonável. |
Illegal AccessException | O acesso a uma aula foi negado. |
InstantiationException | 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 tipos marcados e não marcados. |
Erros ocorrem em tempo de execução que são desconhecidos do compilador. | As exceções podem ser recuperadas tratando-as com a ajuda de blocos try-catch. |
Os erros são causados principalmente pelo ambiente no qual o 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 ocorrido 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. Possui uma ou mais cláusulas.
- Blocos catch recebem um argumento por vez, que é o tipo de exceção que provavelmente irá capturar.
- 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.