Sto giocando con la gestione degli errori e ho un piccolo problema. Mi collego con un database usando il modulo DBI.Perl: errore di cattura senza morire
Faccio la mia gestione degli errori utilizzando una subroutine che richiamo un errore.
posso prendere i miei stampi e gestirli bene, ma quando la mia connessione al database non riesce, il modulo DBI apparentemente stampa fuori di essa la propria filiera:
DBI connect(...) failed: ORA-12154: TNS:could not resolve the connect identifier specified (DBD ERROR: OCIServerAttach) at ...
Come potrei fare per la cattura di questo?
Ho provato ad utilizzare $SIG{__DIE__}
in questo modo:
local $SIG{__DIE__} = sub {
my $e = shift;
print "Error: " .$e;
};
Questa è sul fondo del mio file principale, in questo file anche io chiamo la subroutine di connessione che è disponibile in un modulo della mia. Ho anche provato a mettere questo pezzo di codice sul fondo del mio modulo, ma le stampe ancora l'errore senza il
Error:
di fronte ad essa.
Questo è corretto, si trattava di un avviso e non di una morte e il gestore deve essere installato per primo. Puoi installarlo in qualsiasi modulo se lo sposti in un 'BEGIN {} '. – Ether
leggi anche questo, grazie per la verifica. – Pmarcoen