Exception Handling (when to use it)
dan at coruskate.net
Tue Jul 31 01:11:04 BST 2007
> Running out of records in a table is a normal condition.
This is most likely true (and from the way you describe it, certainly
true in that case). However, to answer the more general question you
first need to define "normal", especially if someone else put the
records there. Suppose for example it was a static lookup table mapping
country codes to names, and (let us say because the new DBA that only
started work last week had truncated the table) there was no entry for
AT. That's definitely a "can't happen" error, though the exception
thrown should probably be CountryUnexpectedlyDoesNotExist rather than
OutOfRecords. AT is Austria, not Atlantis.
Let's take a more "borderline" case: you're reading from a network
socket and the peer closes the connection halfway through sending you a
message. Normal? Perhaps not? Common? Most definitely. I guess my
point is that although "exceptions are for exceptional situations" is
definitely the right approach, you still really need some knowledge of
the application level, not just the mechanisms, to decide what's
exceptional and what's not.
More information about the london.pm