Failure in Ocaml
Nel linguaggio Ocaml posso usare l'istruzione Failure come costruttore di eccezioni. Mi permette di sollevare un'eccezione senza doverla prima dichiarare.
Failure "stringa"
L'argomento è una stringa qualsiasi tra doppie virgolette.
La stringa può essere un codice o qualsiasi altro messaggio che aiuti a comprendere la natura dell'errore.
Un esempio pratico
Questa funzione calcola il fattoriale di un numero intero.
let rec fattoriale = function
0 -> 1
| n -> if n<0 then raise (Failure "FattorialeNegativo")
else n*fattoriale(n-1)
La funzione solleva un'eccezione "FattorialeNegativo" tramite il costruttore Failure quando l'argomento è un numero negativo (n<0).
fattoriale(-3);;
Exception: Failure "FattorialeNegativo".
In questo caso però l'eccezione "FattorialeNegativo" non è stata dichiarata precedentemente con l'istruzione Exception.
E' il vantaggio dell'uso del costruttore Failure nella gestione delle eccezioni.
E così via.