Error Handling and Attributes
Because of typos in their programs or problems in setting up their databases, most programmers turn up errors when they first run an example. We’ll look at some ways to deal with errors here. Luckily, the DBI module provides useful diagnostic messages by default.
The
connect()
method offers an optional
argument that controls the attributes of the
database
handle. Attributes include whether the statement prints an error
message in case of failure, whether it throws a potentially fatal
exception in case of failure, and many other things. We will not
delve into the many subtleties here, such as the varied places where
attributes can be set or the ones that statement handles inherit from the
database handle. Instead, we will show a couple uses of attributes
for error handling.
Suppose you want DBI to terminate your program if it cannot make a
connection or if any later DBI method fails. You can put this
behavior in your connect( )
command by adding a
fourth argument that sets the
RaiseError
attribute, as follows:
my $dbh = DBI->connect("dbi:mysql:$db:$server", $username, $password, { RaiseError => 1 } );
If you want to do something fancier with attributes, such as set them at runtime, here is the syntax for specifying the attribute argument (it is a reference to a hash):
my %attr = ( RaiseError => 1 ); my $dbh = DBI->connect("dbi:mysql:$db:$server", $username, $password, \%attr);
In either case, running a program with an incorrect password produces the ...
Get Managing & Using MySQL, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.