Volver a la página principal
martes 11 febrero 2025
5

Cómo detener la función principal cuando se ejecute una excepción sin salir del programa en Python

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.

Uso de 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.")

Explicación

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.

Alternativa: Devolver un valor para indicar el error

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.")
Etiquetas:
python
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer