Exn Module

Questo modulo definisce tre nuove eccezioni di uso generale, insieme a una stampa di queste eccezioni.

Types

Type Description

Assert_failure

Exception raised when an assertion fails. The arguments are the location of the assert keyword in the source code (file name, line number, column number).

HolErr

Questa eccezione � per errori di corto-circuito che si ritirano direttamente al top level, evitando qualsiasi gestione per l'eccezioni di tipo HolFail.

Essa consiste di una stringa (per convenzione in maiuscolo) che classifica l'eccezione i in modo generico, e di un messaggio che descrive l'eccezione in qualche dettaglio.

HolFail

Questa eccezione � per errori che possono raggiungere alla fine il top level, ma che possono anche essere trappate chiamando delle funzioni. E' l'eccezione classica per casi di errore nelle funzioni di HOL Zero.

Consiste del nome della funzione che fallisce e di un messaggio che descrive l'errore con qualche dettaglio. Di sotto sono definite varie funzioni per sollevare e trappare gli HolFails

LocalFail

Questa eccezzione � per semplici flussi di controllo locali, sollevata per uscire dalla parte principale di una funzione e tipicamente gestita da un try-catch pi� esterno della stessa funzione.

Questa pu� essere utile per rimuovere segnalazioni disordinate di errore dal corpo principale di una funzione e raggrupparle insieme alla fine. E' anche usata come ultima spiaggia in flussi di controllo senza errori,

quando non c'� nulla di pi� elegante.

Functions and values

Function or value Description

build_err msg

Full Usage: build_err msg

Parameters:
    msg : string

Returns: 'a

Solleva un'eccezione HolErr exception per errori di compilazione

msg : string
Returns: 'a

hol_err (err, msg)

Full Usage: hol_err (err, msg)

Parameters:
    err : string
    msg : string

Returns: 'b

Solleva un'eccezione HolErr

err : string
msg : string
Returns: 'b

hol_fail (func, msg)

Full Usage: hol_fail (func, msg)

Parameters:
    func : string
    msg : string

Returns: 'b

Solleva un'eccezione HolFail

func : string
msg : string
Returns: 'b

internal_err func

Full Usage: internal_err func

Parameters:
    func : string

Returns: 'a

Solleva un'eccezione HolErr exception per errori interni

func : string
Returns: 'a