Lanzar errores en Mojo
raise Error(...) rechaza una entrada que la función no puede honrar.
def withdraw(balance: Int, amount: Int) raises -> Int:
if amount <= 0:
raise Error("amount must be positive")
if amount > balance:
raise Error("insufficient funds: " + String(balance))
return balance - amount
def main() raises:
print(withdraw(100, 30))
print(withdraw(70, 70))
Cómo funciona
- Cada guarda revisa una precondición y lanza con un mensaje.
String(balance)mete un valor dentro del texto del error.- El return se alcanza solo cuando las dos guardas dejan pasar la llamada.
Palabras clave y builtins usados aquí
ErrorIntStringdefifprintraisereturn
El intento, en números
- Líneas
- 10
- Caracteres a escribir
- 277
- Tokens
- 70
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 49 segundos.
Paso 1 de 3 en Errores; paso 23 de 26 en Fundamentos del lenguaje.