Manejar errores en Python es el pan de cada día de los programadores. Situaciones inesperadas y errores pueden presentarse constantemente en los programas y las excepciones son la clave para atender este tipo de circunstancias. Precisamente aquí es donde entendemos el contexto de la palabra raise en python. En este artículo te explicaremos qué es raise en python y cómo funciona.
¿Qué es raise en Python?
La palabra reservada raise en python es usada para lanzar excepciones de forma explícita. Es decir, puedes generar un error en el punto exacto en donde lo necesites, ya sea para forzar que una condición no válida detenga el flujo de tu programa, o para indicar que algo salió mal y debe ser tratado en una capa superior.
El raise en python puede ser usado en escenarios en donde toca validar condiciones que no deberían continuar en el programa que estés haciendo. Por ejemplo, si un usuario introduce un valor que no cumple con los requisitos, puedes hacer uso del raise en python para lanzar una excepción y así evitar que el programa avance con datos erróneos.
La sintaxis de raise no es compleja. Solo necesitas especificar el tipo de excepción que deseas lanzar y, opcionalmente, un mensaje descriptivo:
raise ExceptionType("Mensaje de error")
Aquí, ExceptionType es la clase de excepción que deseas lanzar, como ValueError, TypeError, ZeroDivisionError, etc.
Para entender mejor, veamos un ejemplo en el que desarrollamos una función que verifica si una edad es válida:
def verificar_edad(edad):
if edad < 0:
raise ValueError("La edad no puede ser negativa.")
print("Edad válida.")
try:
verificar_edad(-5)
except ValueError as e:
print(f"Se produjo un error: {e}")
🔴 ¿Quieres Aprender a Programar con Python? 🔴
Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semanaEn este ejemplo la función verificar_edad lanza una excepción de tipo ValueError si la edad es negativa. El bloque try-except captura la excepción y muestra el mensaje de error.
Tipos de excepciones que puedes lanzar
Con raise en Python tienes la posibilidad de lanzar cualquier tipo de excepción que ya esté definida en el lenguaje. Algunas de las más comunes son:
- ValueError: cuando el valor de un argumento es incorrecto.
- TypeError: cuando el tipo de dato no es el esperado.
- ZeroDivisionError: cuando intentas dividir por cero.
- NameError: cuando se utiliza una variable que no ha sido definida.
Si esperas que una función reciba un número entero y alguien pasa un string, puedes lanzar un TypeError para alertar de que el tipo de dato no es el correcto:
def procesar_numero(x):
if not isinstance(x, int):
raise TypeError("Se esperaba un número entero.")
print(f"Procesando el número {x}")
try:
procesar_numero("hola")
except TypeError as e:
print(f"Error: {e}")
Aquí raise en python se usa para asegurarnos de que la función solo procese números enteros. Si recibe otro tipo de dato, se lanza una excepción.
Volver a lanzar excepciones
Otra de las cosas que puedes hacer con el raise en python es volver a lanzar una excepción después de que la hayas capturado. Esto es de gran utilidad en tanto que quieras reallizar alguna operación cuando ocurre un error, pero también es necesario que la excepcion sigasu curso para poder ser manejada en un nivel superior. Veamos un ejemplo:
def procesar_datos(dato):
try:
if not isinstance(dato, int):
raise TypeError("Se esperaba un entero.")
print(f"Procesando {dato}")
except TypeError as e:
print(f"Error detectado: {e}")
raise # Vuelve a lanzar la excepción
try:
procesar_datos("texto")
except TypeError as e:
print(f"Excepción manejada en el nivel superior: {e}")
Para este caso la excepción TypeError es capturada y gestionada parcialmente en la función procesar_datos, pero luego se vuelve a lanzar para que pueda ser manejada por el bloque try-except en el nivel superior.
¿Quieres seguir aprendiendo sobre programación? te invitamos a unirte a nuestro bootcamp en programación desde cero, en donde aprenderás sobre muchos lenguajes y podrás crear tu primer hola mundo! ¡No dudes en unirte a la mejor comunidad tech, te esperamos!