Como lidar com mais específico para exceções menos específicos em python

Uma estratégia para tratamento de exceções em Python é fornecer específica exceto

cláusulas para todas as exceções conhecidas e genérico exceto cláusulas para lidar com exceções desconhecidas. Confira o hierarquia de exceção que Python usa. Ao visualizar este gráfico, BaseException é a excepção superior. A maioria das exceções são derivadas Exceção. Ao trabalhar através de erros de matemática, você pode usar o genérico ArithmeticError ou um mais específico ZeroDivisionerror exceção.

avalia Python exceto cláusulas na ordem em que aparecem no arquivo de código-fonte. A primeira cláusula é analisado primeiro, o segundo cláusula é examinado segundo, e assim por diante. Os passos seguintes ajudá-lo a examinar um exemplo que demonstra a importância de usar a ordem exceção correta. Neste caso, você realizar tarefas que resultam em erros de matemática.

  1. Abra uma janela do Python Arquivo.

    Você vê um editor no qual você pode digitar o código de exemplo.

  2. Digite o seguinte código para a janela - pressione ENTER após cada linha:

    tente: Value1 = int (entrada ("Digite o primeiro número: ")) Valor2 = int (entrada ("Digite o segundo número: ")) Output = Value1 / Value2except ValueError: print ("Você deve digitar um número inteiro!"), Exceto KeyboardInterrupt: print ("Você pressionou Ctrl + C!"), Exceto ArithmeticError: print ("Ocorreu um erro de matemática indefinido."), Exceto ZeroDivisionerror: print ("Tentativa de divisão por zero!") Else: print (Output)

    O código começa pela obtenção de duas entradas: Value1 e value2. Os dois primeiros exceto cláusulas de manipular a entrada inesperada. O segundo dois exceto cláusulas de lidar com exceções de matemática, tais como a divisão por zero. Se tudo correr bem com a aplicação, a outro cláusula executa, que imprime o resultado da operação.

  3. Escolha Executar → Run Module.

    Você verá uma janela aberta Python Shell. O aplicativo pede para você digitar o primeiro número.

  4. Digite Olá e pressione Enter.

    Como esperado, Python exibe o ValueError mensagem de exceção. No entanto, sempre vale a pena verificar se há problemas potenciais.

  5. Escolha Executar → Run Module novamente.

    Video: Aulas Python - 116 - Sistemas Numéricos e Operações Bitwise

    Você verá uma janela aberta Python Shell. O aplicativo pede para você digitar o primeiro número.



  6. Tipo 8 e pressione Enter.

    Video: Osvaldo Santana discursa contra os preconceitos (II PyCon Brasil)

    A aplicação pede-lhe para introduzir o segundo número.

  7. Tipo 0 e pressione Enter.

    Você vê a mensagem de erro para o ArithmeticError exceção. O que você deve realmente ver é o ZeroDivisionerror exceção porque&rsquo-s mais específico do que o ArithmeticError exceção.

  8. Inverter a ordem das duas exceções para que eles se parecem com isto:

    exceto ZeroDivisionerror: print ("Tentativa de divisão por zero!"), Exceto ArithmeticError: print ("Ocorreu um erro de matemática indefinido.")
  9. Execute as etapas 5 a 7 novamente.

    Desta vez, você vê a ZeroDivisionerror mensagem de exceção, porque as exceções aparecem na ordem correta.

  10. Efectuar os Passos 5 a 7, novamente, mas de tipo 2 para o segundo número, em vez de 0.

    Desta vez, o aplicativo finalmente relata um valor de 4,0 saída.

    Observe que a saída é um valor de ponto flutuante. Divisão resulta em um valor de ponto flutuante a menos que você especificar que deseja uma saída inteiro usando o operador de divisão andar (//).


Publicações relacionadas