Recuperarse de un error en Mojo
Un ayudante que lanza, envuelto por quien lo llama con un fallback listo.
def ratio(top: Int, bottom: Int) raises -> Float64:
if bottom == 0:
raise Error("cannot divide by zero")
return Float64(top) / Float64(bottom)
def safe_ratio(top: Int, bottom: Int) -> Float64:
try:
return ratio(top, bottom)
except e:
print("falling back:", String(e))
return 0.0
def main():
print(safe_ratio(7, 2))
print(safe_ratio(7, 0))
Cómo funciona
ratiose niega a un denominador cero y lanza en su lugar.safe_ratiolo llama dentro detryy devuelve el resultado si sale bien.- La rama
exceptreporta el problema y devuelve0.0en su lugar.
Palabras clave y builtins usados aquí
ErrorFloat64IntStringdefexceptifprintraisereturntry
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 340
- Tokens
- 96
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 72 segundos.
Paso 3 de 3 en Errores; paso 25 de 26 en Fundamentos del lenguaje.