Control de errores (try except)
En Python, el bloque try...except se utiliza para manejar excepciones. Las excepciones son eventos inesperados que pueden ocurrir durante la ejecución de un programa y que pueden interrumpir su flujo normal. El bloque try permite detectar estas excepciones y manejarlas de manera controlada, evitando que el programa se bloquee. Aquí tienes una explicación básica del try...except con ejemplos:
Estructura básica del try...except
try:
# Código que puede lanzar una excepción
resultado = 10 / 0 # División por cero (ZeroDivisionError)
except ExcepcionTipo as excepcion:
# Manejo de la excepción
print(f"Se produjo una excepción: {excepcion}")
En el ejemplo anterior, el código dentro del bloque try realiza una división por cero, lo que provocará una excepción ZeroDivisionError. El bloque except captura esta excepción y ejecuta el código de manejo de la excepción, que en este caso imprime un mensaje de error.
Ejemplo con múltiples excepciones:
Puedes manejar diferentes tipos de excepciones en un solo bloque try...except utilizando varias cláusulas except.
try:
num = int(input("Ingrese un número: "))
resultado = 10 / num
except ZeroDivisionError as zde:
print(f"Error de división por cero: {zde}")
except ValueError as ve:
print(f"Error de valor no válido: {ve}")
except Exception as e:
print(f"Ocurrió una excepción no manejada: {e}")
En este ejemplo, el programa solicita un número al usuario. Si el usuario ingresa un valor no válido (por ejemplo, una cadena en lugar de un número), se captura una excepción ValueError. Si el usuario ingresa cero como divisor, se captura una excepción ZeroDivisionError. Cualquier otra excepción no manejada se captura mediante la cláusula except Exception.
Utilizando else en try...except:
Puedes usar una cláusula else después de las cláusulas except para especificar un bloque de código que se ejecutará si no se produce ninguna excepción.
try:
num = int(input("Ingrese un número: "))
resultado = 10 / num
except ZeroDivisionError as zde:
print(f"Error de división por cero: {zde}")
except ValueError as ve:
print(f"Error de valor no válido: {ve}")
else:
print(f"El resultado es {resultado}")
En este ejemplo, si no se produce ninguna excepción, se imprimirá el resultado. Si se produce una excepción, el bloque else no se ejecutará.
El uso de try...except es fundamental para manejar situaciones excepcionales en tu código y garantizar que tu programa no se bloquee debido a errores inesperados. Puedes personalizar el manejo de excepciones según las necesidades de tu aplicación y proporcionar una experiencia más robusta a los usuarios.