Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??

The first thing I'd point out is that if your connect worked but an error occurred later the arguments to the HandleError sub are 1. error string 2. the db handle being used when the fail occurred and 3. the first value returned by the failing method. Your HandleError sub seems to assume it is going to get a message/error string and a database name which it is ONLY going to get IF you call it like on line 23 of your example and not IF DBI calls it.

The second thing to point out is that if you have not connected then there is no connection handle passed to HandleError so the 2nd argument will be a DBI::dr, instead. e.g.,

perl -MDBI -le 'use Data::Dumper; sub he {print Dumper(\@_);};my $h = +DBI->connect("dbi:ODBC:does_not_exist", undef, undef, {HandleError => + \&he});' $VAR1 = [ 'DBI connect(\'does_not_exist\',\'\',...) failed: [unixODBC] +[Driver Manager]Data source name not found, and no default driver spe +cified (SQL-IM002)', bless( {}, 'DBI::dr' ), undef ];

Lastly, you are calling your own handle_error if connect fails so at that point you already know the connect failed. Your lines 18 to 23 will end in handle_error being called twice if connect fails.

In reply to Re: SQLite handling of errors through common function by mje
in thread SQLite handling of errors through common function by techman2006

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others studying the Monastery: (2)
    As of 2015-11-28 04:03 GMT
    Find Nodes?
      Voting Booth?

      What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

      Results (737 votes), past polls