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

Una de las estrategias para el manejo de excepciones en Python es proporcionar específica excepto cláusulas para todas las excepciones conocidas y genérica excepto cláusulas para manejar excepciones desconocidas. Revisar la jerarquía de excepciones que utiliza Python. Al visualizar esta tabla, BaseException es la excepción más alta. La mayoría de excepciones se derivan de Excepción. Cuando se trabaja a través de errores matemáticos, se 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 ayudan a examinar un ejemplo que demuestra la importancia de utilizar el orden correcto excepción. En este caso, se realizan tareas que resultan en errores matemáticos.

  1. Abrir una ventana de Python Archivo.

    Ves 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:

    Video: Como publicar en facebook solo para algunas personas o contactos 2014

    Proveedores: Valor1 = int (de entrada ("Escriba el primer número: ")) Value2 = int (de entrada ("Escriba el segundo número: ")) De salida = Valor1 / Value2except ValueError: print ("Debe escribir un número entero!") Excepto KeyboardInterrupt: print ("Ha pulsado Ctrl + C!") Excepto ArithmeticError: print ("Se produjo un error matemático no definido.") Excepto ZeroDivisionerror: print ("Se ha intentado dividir por cero!") Else: print (Salida)

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

  3. Seleccione Ejecutar → Módulo Run.

    Aparece 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. Seleccione Ejecutar → Módulo de Ejecución de nuevo.

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

  6. Tipo 8 y pulse Intro.

    Video: Serpientes Pitón: Manejo 1ª Parte. Si quieres cita 935 703 027

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

  7. Tipo 0 y pulse Intro.

    Aparece el mensaje de error para el ArithmeticError excepción. Lo que realmente debe ver es la ZeroDivisionerror excepción porque&rsquo-s más específica que la ArithmeticError excepción.

  8. Invertir el orden de las dos excepciones para que se vea como esto:

    excepto ZeroDivisionerror: print ("Se ha intentado dividir por cero!") Excepto ArithmeticError: print ("Se produjo un error matemático no definido.")
  9. Realizar los pasos 5 a 7 de nuevo.

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

  10. Realizar los pasos 5 a 7 de nuevo, pero el 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.

    Observe que el resultado es un valor de coma flotante. resultados de la división de un valor de punto flotante a menos que se especifique que desea una salida entero empleando el operador de división piso (//).

Artículos Relacionados