typestar

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

  1. ratio se niega a un denominador cero y lanza en su lugar.
  2. safe_ratio lo llama dentro de try y devuelve el resultado si sale bien.
  3. La rama except reporta el problema y devuelve 0.0 en su lugar.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 3 en Errores; paso 25 de 26 en Fundamentos del lenguaje.

← Anterior Siguiente →