La anotación raises
Marque las funciones que pueden fallar.
La anotación raises es una lección gratuita de Mojo Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Mojo Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Mojo Academy incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
Honest About Failure
Mojo wants functions to be honest about whether they can fail. The raises keyword marks a function that might raise an error. 📣
Adding raises
Put raises right after the argument list. It tells callers this function may not always succeed.
fn parse(text: String) raises -> Int:
...def Can Always Raise
A flexible def function may raise without any annotation. Mojo treats def as able to fail by default.
def load(name: String):
raise Error("missing")fn Must Declare It
A strict fn function cannot raise unless you add raises. This makes failure explicit and easy to spot.
fn safe(x: Int) -> Int:
return x + 1Calling a raising Function
Calling something marked raises means you must handle the error, usually inside a try block.
try:
var n = parse("42")
except e:
print(e)Errors Bubble Through raises
If a raising function is called inside another raises function, the error simply propagates up without a try.
Non-raising Means Safe
A function without raises promises it will not raise. Callers can use it freely without try blocks.
The Compiler Checks You
Mojo's compiler rejects a raise inside a non-raising fn. This catches mismatches before your program ever runs.
Self-Documenting Code
The raises keyword acts as living documentation. One glance at the signature tells you if a call can fail.
Keep the Surface Small
Mark only the functions that truly can fail with raises. Fewer raising functions means simpler, safer call sites.
raises and Return Types
You combine raises with a normal return type. The function returns a value on success or raises on failure.
fn divide(a: Int, b: Int) raises -> Int:
if b == 0:
raise Error("divide by zero")
return a // bQuick Check
Think about how fn and the raises keyword work together.
Recap
You learned that raises declares a function may fail, that def can always raise while fn must opt in, and the compiler enforces it. 🎯
Preguntas frecuentes
¿La lección «La anotación raises» es gratis?
Sí — el texto completo de «La anotación raises» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Mojo Academy, actualiza a CoddyKit PRO. El curso de Mojo Academy incluye 4 lecciones en total.
¿Qué aprenderé en «La anotación raises»?
Marque las funciones que pueden fallar. Practicas Mojo Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Mojo Academy?
No se requiere experiencia previa. Mojo Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «La anotación raises»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Mojo Academy?
Sí. Cada lección de Mojo Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Lanzar un error
- Capturar con try/except
- La anotación raises
- Limpiar con finally