Check out Exception::Class. Also, one may use the PROPAGATE method to accumulate die warnings as they may move up the call stack.

My only advice is to be sensible and don't forget that value of clarity and consistency (if you have controle of either); I rather liberally use die() or throw (from Exception::Class) - especially for resource bound things like databases

Testing exceptions is easy with Test::Exception.

I've always found this Advent entry from 2011 enlightening, http://perladvent.org/2011/2011-12-17.html. I don't use try/catch, but there is good background info in there.

As far as what value to return? Sometimes as you point out you want to return undef or 0. In cases where undef means error but 0 is a legit value, use "defined" to test the return value other than just something like if ($ret) {..}


In reply to Re: Using die() in methods by perlfan
in thread Using die() in methods by v_melnik

Title:
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, details, 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, summary, 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.