Manejo de errores: Resultado y Opcion
Forja adopta el patrón de Resultado para operaciones que pueden fallar, y Opcion para valores que pueden estar ausentes. Ambas son variantes de tipos algebraicos definidos en el preludio.
Opcion
Úsalo cuando un valor pueda ser Algun(valor) o Ninguno. Evita el uso de nulo y fuerza el manejo explícito del caso ausente.
📦 Definición
tipo Opcion<T> = Algun(T) | Ninguno 🧪 Ejemplo
funcion primer_caracter(texto: Texto) → Opcion<Texto> {
si (texto == "") {
retornar Ninguno
}
retornar Algun(texto[0])
}
variable r = primer_caracter("forja")
coincidir (r) {
caso Algun(c) → escribir("Primer letra: " + c)
caso Ninguno → escribir("Vacío")
} Resultado
Úsalo para operaciones que pueden devolver Exito(valor) o Error(mensaje).
📦 Definición
tipo Resultado<T, E> = Exito(T) | Error(E) 🧪 Ejemplo
funcion dividir(a: Entero, b: Entero) → Resultado<Entero, Texto> {
si (b == 0) {
retornar Error("División por cero")
}
retornar Exito(a / b)
}
variable r = dividir(10, 2)
coincidir (r) {
caso Exito(valor) → escribir("Resultado: " + valor)
caso Error(msg) → escribir("Error: " + msg)
} Alias útiles del preludio
| Tipo | Definición | Uso común |
|---|---|---|
Opcion<T> | Algun(T) | Ninguno | Valores ausentes |
Resultado<T, E> | Exito(T) | Error(E) | Operaciones fallibles |