http://www.perlmonks.org?node_id=141730


in reply to Re: Re: Re: DBI conditional insert (and things of those nature)
in thread DBI conditional insert (and things of those nature)

I strongly disagree about RaiseError. It forces you to wrap every DBI call in an eval block. While people are free to ignore $@ after the block, those same people are much more likely to not do any error checking at all. The eval block at least turns on the siren that they should be doing something, much like try/catch blocks in Java.

All MO, of course :-)

Chris
M-x auto-bs-mode

Replies are listed 'Best First'.
Re: On using RaiseError
by Masem (Monsignor) on Jan 26, 2002 at 17:53 UTC
    To the experienced user, RaiseError is a good thing, and as you say, it does force you to wrap things into eval loops to handle errors. However, newer programmers may forget to wrap the DBI calls in evals, or will write several lines of DBI code that don't fail to work, and then be completely confused when something small changes and their program dies, and they'll be wondering what went wrong. I'd rather see people not used to DBI or perl in general use the "or die" approach, such that they understand that every "prepare" and "execute" statment in DBI should be checked for errors. Once they've understood that, then moving them on to RaiseError and eval's are a good thing. But again, IMO as well.

    -----------------------------------------------------
    Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain
    "I can see my house from here!"
    It's not what you know, but knowing how to find it if you don't know that's important