En Python, cuando ocurre una excepción dentro de una función, podemos manejarla con try-except
para evitar que el programa se detenga por completo. Sin embargo, si queremos que solo la función principal deje de ejecutarse sin cerrar el programa, podemos manejar la excepción dentro de la propia función y retornar un valor adecuado.
try-except
para detener solo la función
Podemos capturar la excepción dentro de la función y manejarla sin afectar el resto del programa.
def funcion_principal():
try:
print("Ejecutando función principal...")
x = 1 / 0 # Esto generará un error ZeroDivisionError
print("Esto no se ejecutará si hay un error.")
except Exception as e:
print(f"Se capturó una excepción: {e}")
return # Detiene la función, pero el programa sigue
print("Esto tampoco se ejecutará si hay una excepción.")
print("Inicio del programa")
funcion_principal()
print("El programa sigue ejecutándose normalmente.")
1. Manejo de la excepción dentro de la función: Cuando ocurre un error (ZeroDivisionError
en este caso), se captura en el bloque except
, se muestra el mensaje y se usa return
para detener la función.
2. El programa sigue ejecutándose: La excepción no se propaga fuera de la función, por lo que el resto del código sigue corriendo normalmente.
Si queremos manejar el error en otra parte del código, podemos hacer que la función devuelva un valor especial, como None
o False
.
def funcion_principal():
try:
print("Ejecutando función principal...")
x = 1 / 0
return "Éxito"
except Exception as e:
print(f"Error en la función: {e}")
return None # Indica que la función falló
resultado = funcion_principal()
if resultado is None:
print("La función falló, pero el programa continúa.")
else:
print("Función ejecutada correctamente.")
print("El programa sigue corriendo.")
Jorge García
Fullstack developer