Excepciones en OCaml
Declaradas como variantes, atrapadas por patrón.
(* Exceptions declare like variants; try/with catches by pattern. *)
exception Pool_closed of string
let open_pool name =
if name = "cove" then raise (Pool_closed "nesting birds")
else name ^ " open for sampling"
let attempt name =
try open_pool name with
| Pool_closed reason -> name ^ " skipped: " ^ reason
let () =
print_endline (attempt "north");
print_endline (attempt "cove");
(* Failure is the stock exception failwith raises. *)
(try failwith "tide turned" with
| Failure msg -> Printf.printf "Called off: %s\n" msg)
Cómo funciona
exception Pool_closed of stringdeclara con carga.try ... with | Pool_closed reason ->atrapa por forma.failwithlanza la excepciónFailurede fábrica.
Palabras clave y builtins usados aquí
elseexceptionifletofraisestringthentrywith
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 527
- Tokens
- 92
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 85 segundos.
Paso 2 de 3 en Idiomas del lenguaje; paso 25 de 29 en Fundamentos del lenguaje.