Cómo manejar más específica a las excepciones menos específicos en python

Una estrategia para el manejo de excepciones en Python es proporcionar específica excepto cláusulas para todas las excepciones conocidas y genérico excepto cláusulas para manejar excepciones desconocidas. Echa un vistazo a la jerarquía de excepción que utiliza Python. Al ver esta gráfica, BaseException es la excepción más alta. La mayoría de las excepciones se derivan de Excepción. Cuando se trabaja a través de errores matemáticos, puede utilizar el genérico ArithmeticError o una más específica ZeroDivisionerror excepción.

Evalúa Python excepto cláusulas en el orden en el que aparecen en el archivo de código fuente. La primera cláusula se examinó en primer lugar, la segunda cláusula se examina segundo, y así sucesivamente. Los siguientes pasos le ayudarán a examinar un ejemplo que demuestra la importancia de utilizar el orden excepción correcta. En este caso, a realizar tareas que dan lugar a errores matemáticos.

  1. Abra una ventana de Python Archivo.

    Usted ve un editor en el que puede escribir el código de ejemplo.

  2. Escriba el siguiente código en la ventana - presione ENTRAR después de cada línea:

    Proveedores: Valor1 = int (input ("Escriba el primer número:")) Value2 = int (input ("Escriba el segundo número:")) de salida = Valor1 / Value2except ValueError: print ("Usted debe escribir un número entero!" ) excepto KeyboardInterrupt: print ("Ha pulsado Ctrl + C"), excepto ArithmeticError: print ("Se ha producido un error matemático indefinido.") excepto ZeroDivisionerror: print ("Se ha intentado dividir por cero!") else: print (Salida)

    El código comienza mediante la obtención de dos entradas: Valor1 y Valor2. Los primeros dos excepto cláusulas manejan entrada inesperada. El segundo de dos excepto cláusulas manejar excepciones de matemáticas, tales como dividir por cero. Si todo va bien con la solicitud, el otro cláusula ejecuta, que imprime el resultado de la operación.

  3. Elija Módulo Run-Run.

    Usted ve una ventana abierta Python Shell. La aplicación le pide que escriba el primer número.

  4. Escriba Hola y pulse Intro.

    Como era de esperar, Python muestra el ValueError mensaje de excepción. Sin embargo, siempre vale la pena comprobar si hay problemas potenciales.

  5. Elija Módulo Run-Run de nuevo.

    Usted ve una ventana abierta Python Shell. La aplicación le pide que escriba el primer número.

  6. Tipo 8 y pulse Intro.

    La aplicación le pedirá que introduzca el segundo número.

  7. Escriba 0 y pulse Intro.

    Usted ve el mensaje de error para el ArithmeticError excepción. Lo que usted debe ver realmente es el ZeroDivisionerror excepción porque es más específica que la ArithmeticError excepción.

    imagen0.jpg
  8. Invertir el orden de las dos excepciones para que se vieran como esto:

    excepto ZeroDivisionerror: print ("Se ha intentado dividir por cero!"), excepto ArithmeticError: print ("Se ha producido un error matemático indefinido.")
  9. Realice los pasos 5 a 7 de nuevo.

    Esta vez, se ve la ZeroDivisionerror mensaje de excepción debido a que las excepciones aparecen en el orden correcto.

  10. Realice los pasos 5 a 7 de nuevo, pero de tipo 2 para el segundo número en lugar de 0.

    Esta vez, la aplicación por último informa de un valor de salida de 4,0.

    image1.jpg

    Observe que el resultado es un valor de coma flotante. Resultados de la división en un valor de coma flotante a menos que se especifique que desea una salida de enteros utilizando el operador de división piso (//).




» » » » Cómo manejar más específica a las excepciones menos específicos en python