Lección 15 / 20

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.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 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).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)