Thread DBI: Exception Model RaiseError (15 answers)
Opened by rosti at 2011-03-23 10:21

rosti
 2011-03-23 10:21
#146813 #146813
User since
2011-03-19
3505 Artikel
BenutzerIn
[Homepage]
user image
Hallo,

im DB-Connect gibt es die Attribute PrintError und RaiseError. Im Default ist PrintError => 1, lasse ich das so stehen, und notiere {RaiseError => 0}, wirft mir DBI keine Exception, sehe ich das so richtig?

Ok, wir setzen {RaiseError => 1} und erwarten eine Exception, etwa bei einem fehlerhaften SQL-Statement. Abfangen der Exception mit eval like this:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
	eval{$sth->execute()};
if($@){
print join "\n", $@;
}
else{
while( my $ref = $sth->fetchrow_arrayref){
$self->{CALLBACK}($ref);
#print "$ref->[0]\n";
}
}


Gibt es da außer eval noch andere Möglichkeiten? Und überhaupt: Was ist der Unterschied zwischen einer Exception, die mit RaiseError ausgelöst wird und PrintError => 1, also mit {RaiseError => 1, PrintError => 1} bekomme ich ins Log zweimal diegleichen Meldungen.

Vielen Dank für hilfreiche Infos,
Rolf

View full thread DBI: Exception Model RaiseError