J'ai une requête de base de données que je cours dans un eval, pour piéger l'erreur. Le problème est que le message d'erreur sort en console, même s'il est piégé. Comment puis-je arrêter le message d'erreur, car je veux l'analyser moi-même et cracher mes propres messages?Pourquoi est-ce que je vois des erreurs DBI sur la console même si j'ai enveloppé les appels DBI dans un eval?
my $dbh = DBI->connect('dbi:Pg:dbname=database;host=localhost',
'user', 'pass',
{RaiseError => 1}
);
eval{
$sth = $dbh->prepare($sql);
$sth->execute;
};
if([email protected]){
#Do my parse/print stuff here I know
}
Peut-être que 'HandleError' pourrait également être utilisé, si vous descendez la route d'erreur (Imprimer | Élever). – vol7ron
@ vol7ron HandleError est aussi une possibilité, mais je n'en ai jamais trouvé un bon usage puisque je ne fais qu'emballer des blocs de code dans eval {} pour attraper toutes les exceptions, pas seulement les erreurs DBI. – runrig
Vous pouvez également définir certains de ces attributs par handle d'instruction. –