Thread DBI:mysql:... SELECT
(9 answers)
Opened by pearl-man at 2005-08-09 10:49
[quote=nepos,30.08.2005, 09:29]Fuers Fehlerabfangen finde ich die Konstruktion mit eval recht gut.[/quote]
@nepos: Warum denn das? mit eval kann man ja u.a. Programmabbrueche z.B. durch die() abfangen, und ein Programmabbruch bei DBI kommt normalerweise nur dann vor, wenn du mit RaiseError => 1 arbeitest. wenn der Erfolg der Abfrage keine Rolle spielt, dann kannst du einfach auf das RaiseError => 1 verzichten, dann sparst du dir das eval drumherum (und auch ein bisschen laufzeit). wenn der Erfolg der Abfrage hingegen eine Rolle spielt, dann musst du sowieso Fehler abfragen (oder besser sogar: abfangen). Und ohne RaiseError => 1 tauscht du eval + fehlerabfrage in nichts + fehlerabfrage um, also sparst dir das eval und kannst zusaetzlich kontrollierter auf den Fehler reagieren, weil du bestimmen kannst, wie die Fehlermeldung(en) ausgegeben werden, eventuell sogar alternativwege gehen kannst und nicht qualvoll $@ durchparsen musst. Und wenn es in beiden Faellen Sinn macht, auf RaiseError => 1 und eval zu verzichten, warum es dann nicht einfach tun? Code: (dl
)
1 unless ($sth->execute($var1, $var2)) { oder siehst du das anders?\n\n <!--EDIT|Strat|1125410174--> perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |