|Problems? Is your data what you think it is?|
I didn't program Java for very long, so I really never quite understood the best way to handle exceptions. (The one thing that I miss in Perl is compile-time checking of whether or not the exceptions are caught, but that's a side issue). Recently, I was struggling to get an API just write (sic) and the simplest way to do it seemed to be the following:
In other words, if I get back a valid Form object, I can add the data to the database. Otherwise, I have a hashref that contains the form error information. This error information is user error -- not program error. As a result, I don't want to die or warn, yet variants of those are typical Perl error handling mechanisms. Further, I have a method that returns two fundamentally different types of data: and object or a hashref. I finally started using the Error module and now use try/catch blocks to handle the types of errors that I need.
Combining this with Test::Exception has made my tests simpler and my code more self-documenting. However, I'm not entirely sure what are "best practices" for exception handling in this manner. Can anyone offer their wisdom?