perlcritic complaints that the following code, some boilerplate DBI stuff that works perfectly fine, should croak
instead of die
:
# Connect to database my $db_handle = DBI->connect( $url, $user, $password ) or die $DBI::errstr;
All this, while die seems to work fine for me.
I would think for a samurai Perl warrior, croak is less honorable than actually die when things go awry. Jokes apart
Why should I croak
instead of die
?
What are the consequences of not heeding perlcritic's advice?
croak() function: This function is similar to die() function, except that it produces a shorter message which reports the error as being from where your module was called. Example: perl.
From http://www.perlmonks.org/?node_id=685452
You use die when the error is something you or your code didn't do right. You use croak when it's something your caller isn't doing right. die "error: $!" indicates the error is on the line where the error occured. croak "error: $!" indicates the error is on the line where the caller called your code.
In this case, the error (connection error to DB) has nothing to do with the caller and everything to do with the line making the connection, so I would use die
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With