Cómo manejar excepciones en Python usando la cláusula finally
Normalmente quieres manejar cualquier excepción que se produce de una manera que no cause su aplicación Python se bloquee. Sin embargo, a veces no se puede hacer nada para solucionar el problema, y la aplicación es sin duda va a estrellar.
Conteúdo
En este punto, su objetivo es hacer que la aplicación se bloquee con gracia, lo que significa el cierre de los archivos para que el usuario no pierda datos y realizar otras tareas de esa naturaleza. Cualquier cosa que usted puede hacer para evitar daños a los datos y el sistema a un mínimo es una parte esencial del manejo de datos para una aplicación de estrellarse.
los finalmente cláusula forma parte de la estrategia de estrellarse-aplicación. Se utiliza esta cláusula para realizar tareas requeridas de última hora. Normalmente, el finalmente cláusula es bastante corta y utiliza sólo las llamadas que pueden tener éxito sin más problema.
Es esencial para cerrar los archivos, ingrese el usuario fuera, y realizar otras tareas requeridas, y luego dejar que la caída de la aplicación antes de que ocurra algo terrible (como un fracaso total del sistema). Con esta necesidad en mente, los siguientes pasos muestran un ejemplo sencillo de utilizar el finalmente cláusula.
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:
systry importación: elevar ValueErrorprint ("Raising una excepción.") excepto ValueError: Impresión sys.exit () finalmente ("ValueError Excepción!"): print (". El cuidado de los detalles de última hora") print ("Este código nunca se ejecutar. ")
En este ejemplo, el código plantea una ValueError excepción. los excepto cláusula ejecuta de forma normal cuando esto sucede. La llamada a sys.exit () significa que la aplicación se cierra después de que se manejó la excepción. Tal vez la aplicación no puede recuperarse en este caso en particular, pero la aplicación normalmente termina, por lo que la final impresión() llamada de función no volverá a ejecutar.
los finalmente código cláusula siempre ejecuta. No importa si la excepción ocurre o no. El código se coloca en este bloque debe ser código común que siempre desea ejecutar. Por ejemplo, cuando se trabaja con un archivo, se coloca el código para cerrar el archivo en este bloque para asegurar que los datos no se daña al permanecer en la memoria en lugar de ir al disco.
Elija Módulo Run-Run.
Usted ve una ventana abierta Python Shell. La aplicación muestra el excepto mensaje cláusula y la finalmente mensaje cláusula. los sys.exit () llamada impide que cualquier otro código de ejecución.
Comentario la llamada ValueError aumento precediéndolo con dos signos de libra, como este:
## recaudar ValueError
Extracción de la excepción demostrará cómo el finalmente cláusula realmente funciona.
Guarde el archivo en el disco.
Esto asegura que Python ve el cambio.
Elija Módulo Run-Run.
Usted ve una ventana abierta Python Shell. La aplicación muestra una serie de mensajes, incluyendo el finalmente mensaje cláusula. Esta parte del ejemplo muestra que el finalmente cláusula siempre se ejecuta, por lo que necesita para usarlo con cuidado.