I have a large library of Perl routines that are used in a large system. The code has been written over past several years by several programmers. Lately, we've been writing new code using exceptions, using Error and Exception::Class.

Surprisingly, following the latest OO conventions has led to serious problems and this question of mine. The problem I encountered was that people would change behavior of a function to throw an error, but sometimes forget to place the call in try{} block (mainly because they were not aware the function is called somewhere else). The result is the process mysteriously dying.

Is there a way to force calling functions to place calls to things that can throw exceptions in try{} block? (And I know the answer is probably "no"). Java has this type of enforcement built into the compiler. If there's no programmatic way of enforcing the practice, I'd like to hear how to cope with this besides preaching diligence to every member of the team -- people can still make mistakes.

Thanks for your suggestions!


In reply to Enforcing exception catching by dmitri

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.