Quando volete segnalare che qualcosa è andato un po' storto, chiamate la funzione warn.
Quando volete segnalare che qualcosa è andato tremendamente storto, e volete gettare la spugna, chiamate die
.
Chi ha letto un po' di codice Perl dovrebbe avere familiarità con die
.
Una delle espressioni più note è la open or die
usata per aprire un file.
Una chiamata a die
stampa la stringa data su standard error (STDERR)
e poi termina il programma.
Come warn, se la stringa che le passate non termina con
un carattere di a capo \n
, perl include automaticamente il nome del file e il numero della linea dove è stata chiamata die
.
Questo può essere utile successivamente per trovare la causa del problema.
Lanciare eccezioni
In effetti die lancia una vera e propria eccezione, anche se la cosa può essere ignorata negli script più semplici.
In tali script probabilmente non avete del codice specializzato per catturare le eccezioni, e vi limitate
ad usare die
al posto di chiamare warn
e poi >exit.
In applicazioni più grandi, quando iniziate a scrivere dei moduli, potreste invece iniziare a voler
lanciare delle eccezioni e catturarle con eval
. Ne parleremo in
un prossimo articolo.
Intercettare le chiamate a die
Con una tecnica un po' più avanzata, Perl fornisce un gestore di segnali per i die
proprio come fa per i warn
. La differenza fondamentale è che il gestore di segnali che
intercetta le chiamate a die non impedisce la terminazione del vostro script. Il suo interesse è limitato
ai casi in cui l'eccezione viene già catturata (ad es. usando eval
)
e volete intercettare i casi in cui qualcuno ha catturato l'eccezione ma non l'ha gestita adeguatamente.
Per tali casi leggete l'articolo su come catturare le chiamate a die.