Introdução ao tratamento de exceções em Python

As exceções são tratadas em python usando duas técnicas principais: são uma manipulação de asserção e exceção. Discutiremos as técnicas de manipulação de exceção python neste capítulo
Qualquer evento que desvie a execução normal do fluxo do programa é chamado de exceção. O bloco Try contém possíveis códigos de geração de erros. Colocar em ordem e gerenciar essas exceções é um processo realizado pelo bloco de exceção, que é inserido no final de cada bloco de tentativa. Um único bloco de tentativa pode associar mais de uma exceção em um determinado momento, enquanto o bloco else fica na seção de fluxo de programa usual. Todo o código em que não é necessária a proteção do bloco try é colocado no bloco else do programa.

Sintaxe:

try: Executes when suspicious code is executed
except Exception1: Executed when
exception 1 is raised
except Exception2: Executed when exception 2 is raised
else: If there is no exception then execute this block

Lista de exceções padrão

Exceção: todas as exceções da classe base

StopIteration: quando nenhum objeto é apontado pelo próximo método do iterador, essa exceção é gerada

SystemExit: guiado pela função sys.exit ().

StandardError: Exceto StopIteration e SystemExit, isso atua como a classe base para todas as funções internas.

ArithmeticError: Para todos os erros numéricos, essas exceções atuam como a classe base.

OverflowError: para um tipo numérico, se o cálculo exceder o valor máximo possível, esse erro é gerado.

FloatingPointError: a falha de uma operação de flutuação retrocede esse erro

ZeroDivisionError: gerado quando ocorre uma situação de divisão por zero no código

AssertionError: Quando a instrução assert falha, esse erro é acionado

AttributeError: Quando uma atribuição ou uma referência de atributo falha, gera esse erro

EOFErroR: gerado quando não é atingida mais nenhuma entrada de nenhuma função e final do arquivo

ImportError: gerado enquanto uma declaração de importação falha.

KeyboardInterrupt: gerado quando há uma interrupção na execução do programa

LookupError: Todos os erros de pesquisa se enquadram nessa classe base

IndexError: gerado quando o índice não foi encontrado

KeyError: gerado quando o dicionário não mantém o valor da chave mencionado

NameError: gerado para um identificador ausente local ou globalmente no programa

UnboundLocalError: gerado quando se usa uma variável local sem que nenhum valor seja atribuído a ela.

EnvironmentError: classe base para erros orientados ao ambiente que ocorrem fora do python

IOError: gerado durante um processo de entrada / saída sem êxito

SyntaxError: todos os erros orientados à sintaxe do python são tratados por essa exceção

IndentationError: indentação incorreta levará a esse tipo de erro

SystemError: Isso ocorre em uma situação em que o intérprete não funciona conforme o esperado, mas esse erro não faz com que o programa python fique fora de execução

SystemExit: Quando a função sys.exit () é usada pelo interpretador python, ela leva a essa exceção. isso faz com que o código termine de forma anormal quando não for tratado adequadamente.

TypeError: quando uma operação é inválida para um tipo de dados específico, esse erro é solicitado

ValueError: quando uma função mantém um argumento de tipo válido, mas um valor incorreto é especificado para esse argumento de tipo

RuntimeError: se alguma das categorias acima não for atendida, esse erro será gerado

NotImplementedError: gerado quando um método não configurativo que deseja ser colocado em prática em uma classe herdada não é realmente implementado. Colocar em ordem e gerenciar essas exceções é um processo realizado pelo bloco de exceção, que é inserido no final de cada bloco de tentativa.

Processo de manipulação de exceção em Python

  • Exceto cláusula com várias exceções
  • Exceto cláusula sem exceção mencionada
  • Exceto cláusula com argumentos

Abaixo discutiremos o processo de manipulação de exceções em Python

1. Exceto cláusula com várias exceções

Isso permite que mais de uma instrução exceto seja declarada em uma cláusula exceto e todas essas exceções declaradas podem ser levantadas a partir desta cláusula exceto.

Sintaxe:

try: Code block1
except(Exception1(, Exception2(, …ExceptionN)))):
Executes when one among the exception happens
else: Executed when no exception is raised

2. Exceto cláusula sem exceção

Todas as exceções acionadas do bloco try podem ser processadas aqui.

Sintaxe:

try:
Code block1
except:
Executes if any type of exception happens
else:
If there is no exception then execute this block

3. Exceto cláusula com argumentos

A causa real da exceção será mantida no valor do argumento

Sintaxe:

try:
Code block1except
ExceptionType, Argument:
Argument value is printed here

4. Programa de tratamento de exceções

Sintaxe:

try:
fh = open("testfile1", "w")
try:
fh.write("Exception handeling")
finally:
print "Going to close the file"
fh.close()
except IOError:
print "Error: can\'t find file or read data"

Conclusão

Toda linguagem de programação mantém o processo de gerar uma exceção sempre que enfrenta um conjunto inesperado de situações, e o python é um deles que produz técnicas profundas para lidar com essas exceções, o que a torna uma linguagem de programação com base sólida.

Artigo recomendado

Este foi um guia para o tratamento de exceções do Python. Aqui discutimos a lista de exceções padrão e processamos junto com a sintaxe. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Vantagens do Python
  2. Frameworks Python
  3. Padrões em Python
  4. Compiladores Python
  5. Tratamento de exceções no VB.NET (exemplos)
  6. Dicionário em Python
  7. Eventos VB.Net