finalmente palabra clave en Python

Requisitos previos: manejo de excepciones , probar y excepto en Python

En programación, puede haber alguna situación en la que el método actual termine mientras maneja algunas excepciones. Pero el método puede requerir algunos pasos adicionales antes de su finalización, como cerrar un archivo o una red, etc.
Entonces, para manejar estas situaciones, Python proporciona una palabra clave finally, que siempre se ejecuta después tryyexcept bloquea. El finallybloque siempre se ejecuta después de la finalización normal del bloque de prueba o después de que finaliza el bloque de prueba debido a alguna excepción.

Sintaxis:

try:
       # Some Code.... 

except:
       # optional block
       # Handling of exception (if required)

finally:
      # Some code .....(always executed)      

Puntos importantes –

  • finalmente el bloque siempre se ejecuta después de salir de la declaración de prueba . En caso de que el bloque de excepción no haya manejado alguna excepción, se vuelve a generar después de la ejecución del bloque finalmente.
  • finalmente bloque se utiliza para desasignar los recursos del sistema.
  • Uno puede usar finalmente justo después de intentarlo sin usar el bloque excepto , pero en ese caso no se maneja ninguna excepción.

Ejemplo 1:

# Python program to demonstrate finally
  
# No exception Exception raised in try block
try:
    k = 5//0 # raises divide by zero exception.
    print(k)
  
# handles zerodivision exception    
except ZeroDivisionError:   
    print("Can't divide by zero")
      
finally:
    # this block is always executed 
    # regardless of exception generation.
    print('This is always executed') 

Producción:

Can't divide by zero
This is always executed

 
Ejemplo #2:

# Python program to demonstrate finally
  
try:
    k = 5//1 # No exception raised
    print(k)
  
# intends to handle zerodivision exception    
except ZeroDivisionError:   
    print("Can't divide by zero")
      
finally:
    # this block is always executed 
    # regardless of exception generation.
    print('This is always executed') 

Producción:

5
This is always executed

 
Ejemplo #3:

# Python program to demonstrate finally
  
# Exception is not handled
try:
    k = 5//0 # exception raised
    print(k)
      
finally:
    # this block is always executed 
    # regardless of exception generation.
    print('This is always executed') 

Producción:

This is always executed

Error de tiempo de ejecución –

Unhandled Exception 
    k=5//0 #No exception raised
ZeroDivisionError: integer division or modulo by zero

Explicación:
en el código anterior, la excepción se genera con una división entera o módulo por cero , que no se manejó. La excepción se volvió a generar después de la ejecución del bloque finalmente . Esto muestra que el bloque finalmente se ejecuta independientemente de si la excepción se maneja o no.

Publicación traducida automáticamente

Artículo escrito por deepak_jain y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *