Cómo manejar las excepciones anidadas en python
A veces es necesario colocar una rutina de excepciones de manejo dentro de otra en un proceso llamado anidación.
Conteúdo
- Abra una ventana de python archivo.
- Escriba el siguiente código en la ventana - presione entrar después de cada línea:
- Elija módulo run-run.
- Escriba hola y pulse intro.
- Escriba y y presione intro.
- Escriba 5,5 y pulse intro.
- Presione ctrl + c, cmd + c, u otra combinación de teclas para interrumpir la aplicación.
- Elija módulo run-run.
- Presione ctrl + c, cmd + c, u otra combinación de teclas para interrumpir la aplicación.
Una de las razones más comunes de utilizar una doble capa de código de control de excepciones es cuando se quiere obtener la opinión de un usuario y la necesidad de colocar el código de entrada en un bucle para garantizar que usted consigue realmente la información requerida. Los pasos siguientes muestran cómo podría funcionar este tipo de código.
Abra una ventana de Python Archivo.
Usted ve un editor en el que puede escribir el código de ejemplo.
Escriba el siguiente código en la ventana - presione ENTRAR después de cada línea:
TryAgain = Truewhile TryAgain: try: Valor = int (input ("Escriba un número entero.")) Excepto ValueError: ("¡Debe escribir un número entero") print probar: DoOver = input ("Inténtalo de nuevo (s / n )? "), excepto: print (" Está bien, nos vemos la próxima vez ") TryAgain = Falseelse: if (str.upper (DoOver) =="! N "): TryAgain = Falseexcept KeyboardInterrupt: print (" Usted pulsa Ctrl + C ! ") print (" ¡Nos vemos la próxima vez ") TryAgain = Falseelse: impresion (Valor) TryAgain = False
El código comienza mediante la creación de un bucle de entrada. El uso de bucles para este tipo de objetivo en realidad es bastante común en las aplicaciones, ya que no desea que la aplicación para poner fin cada vez que se comete un error de entrada. Este es un bucle simplificada, y que normalmente se crea una función separada para mantener el código.
Cuando el bucle se inicia, la aplicación pide al usuario que escriba un número entero. Puede ser cualquier valor entero. Si el usuario escribe cualquier valor no entero o presiona Ctrl + C, Cmd + C, o de otra interrupción combinación de teclas, el código de control de excepciones se hace cargo. De lo contrario, la aplicación imprime el valor que el usuario suministra y conjuntos Inténtalo de nuevo a Falso, lo que provoca que el bucle a fin.
LA ValueError excepción puede ocurrir cuando el usuario comete un error. Porque no sé por qué la entrada de usuario el valor equivocado, usted tiene que preguntarse si el usuario quiere volver a intentarlo. Por supuesto, cada vez más la entrada del usuario podría generar otra excepción. El interior probar # 133- excepción bloque de código se encarga de esta entrada secundaria.
Observe el uso de la str.upper () funcionar al conseguir la entrada de caracteres del usuario. Esta función permite recibir y o Y como entrada y aceptar a los dos. Cada vez que usted le pide al usuario para la entrada de caracteres, que es una buena idea para convertir los caracteres en minúsculas a mayúsculas, para que pueda realizar una sola comparación (reduciendo la posibilidad de error).
los KeyboardInterrupt excepción muestra dos mensajes y luego sale automáticamente mediante el establecimiento de Inténtalo de nuevo a Falso. los KeyboardInterrupt se produce sólo cuando el usuario pulsa una combinación de teclas específica diseñada para poner fin a la aplicación. Es poco probable que quieran seguir usando la aplicación en este punto el usuario.
Elija Módulo Run-Run.
Usted ve una ventana abierta Python Shell. La aplicación pide al usuario que introduzca un número entero.
Escriba Hola y pulse Intro.
La aplicación muestra un mensaje de error y le pregunta si quiere volver a intentarlo.
Escriba Y y presione Intro.
La aplicación le pedirá que introduzca un número entero de nuevo.
Escriba 5,5 y pulse Intro.
La aplicación de nuevo muestra el mensaje de error y le pregunta si quiere volver a intentarlo.
Presione Ctrl + C, Cmd + C, u otra combinación de teclas para interrumpir la aplicación.
La aplicación termina. Observe que el mensaje es el uno de la excepción interna. La aplicación nunca llega a excepción exterior porque el manejador de excepción interna proporciona el manejo de excepciones genérico.
Elija Módulo Run-Run.
Usted ve una ventana abierta Python Shell. La aplicación pide al usuario que introduzca un número entero.
Presione Ctrl + C, Cmd + C, u otra combinación de teclas para interrumpir la aplicación.
La aplicación termina. Observe que el mensaje es el de la excepción exterior. En los pasos preious, el usuario termina la aplicación pulsando la tecla de interrupción. Sin embargo, la aplicación utiliza dos controladores de excepciones diferentes para abordar el problema.