From perldoc DBI
$dbh = DBI->connect($dsn, $user, $password,
{ RaiseError => 1 });
"RaiseError" (boolean, inherited)
This attribute can be used to force errors to raise excepti
+ons
rather than simply return error codes in the normal way. It
+ is
"off" by default. When set "on", any method which results
+in an
error will cause the DBI to effectively do a "die("$class $
+method
failed: $DBI::errstr")", where $class is the driver class a
+nd
$method is the name of the method that failed. E.g.,
DBD::Oracle::db prepare failed: ... error text here ...
If you turn "RaiseError" on then you'd normally turn "Print
+Error"
off. If "PrintError" is also on, then the "PrintError" is
+done
first (naturally).
Typically "RaiseError" is used in conjunction with "eval {
+... }"
to catch the exception that's been thrown and followed by a
+n "if
($@) { ... }" block to handle the caught exception. In that
+ eval
block the $DBI::lasth variable can be useful for diagnosis
+and
reporting. For example, $DBI::lasth->{Type} and
$DBI::lasth->{Statement}.
Hope this helps