What does die do?
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.
Published on 2013-12-06