You should use what you think is best. Probably the most common methods are: returning a special value (undefined, 0, empty string, empty list, -1, MAX_INT) or performing a die. I fancy the latter, but I use the former often as well. The former has two drawbacks: you can't return a value that indicates "error" if there's no error, and you either have to reserve an range of special values, or you can't signal what went wrong, other than scribbling the reason away somewhere (compare open returning false, and using $! to indicate the reason).

Throwing an exception (die) doesn't suffer from this. You don't "lose" possible return values, and you can do the "return" and reason all at once, just die with a reason. The caller still needs to do two things, using eval and checking $@, but the caller already needed to do two things.

But please use whatever you are most comfortable with. And that might vary from project to project. Or even from method to method.

Abigail


In reply to Re: How to say 'oops' in OOPs? by Abigail-II
in thread How to say 'oops' in OOPs? by Willard B. Trophy

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.