¿Ya dominas lo básico? Un curso estructurado de Rust es la vía rápida para dar el salto.
Ver cursos de Rust en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (println!)
- 03Variables y mutabilidad (let / mut)
- 04Anotaciones de tipo y tipos básicos
- 05Condicionales (la expresión if)
- 06Repetir (el bucle for)
- 07Escribir tu propia función
- 08Repetir (while y loop)
- 09La propiedad, lo básico
- 10Préstamos (referencias, &)
- 11Trabajar con vectores (Vec)
- 12Estructuras (struct)
- 13enum y la expresión match
- 14El tipo Option (seguridad frente a null)
- 15El tipo Result y el manejo de errores
- 16Traits (comportamiento compartido)
- 17Genéricos
- 18Closures (funciones anónimas)
- 19Trabajar con texto (String)
- 20[Proyecto] Construye un mini sistema de inventario
El tipo Result y el manejo de errores
En esta lección devolverás desde una función o bien un resultado, o bien un error explicado.
Result<T, E> también es un enum de dos variantes: Ok(valor) si la operación salió bien y Err(error) si falló. Igual que con Option, hay que abrirlo con match para llegar al contenido.
El código de ejemplo divide dos números y devuelve un Err cuando el divisor es cero. Como se llama con 0.0, la salida es la rama de error.
La diferencia con las excepciones de otros lenguajes es que aquí el error forma parte del tipo devuelto. No hay un camino invisible por el que el programa pueda saltar: leyendo la firma de la función ya sabes que puede fallar, y el compilador te obliga a decidir qué hacer. Nada de catch vacíos que se tragan el problema.
En el trabajo real casi nunca se escribe el match a mano: el operador ? propaga el error a quien llamó en una sola letra, y el código queda tan directo de leer como si no hubiera manejo de errores, pero sin perder ninguno por el camino.
🧪 Este sitio no puede compilar ni ejecutar Rust directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
