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
Conteúdo
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.
Abra uma janela do Python Arquivo.
Você vê um editor no qual você pode digitar o código de exemplo.
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.
Escolha Executar → Run Module.
Você verá uma janela aberta Python Shell. O aplicativo pede para você digitar o primeiro número.
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.
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.
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.
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.
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.")
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.
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 (//).