This was quite useful. In my case and I think many cases, none of these are worth coding for because of one or more of:
- Not decidable in the general case.
- A lot of overhead to decide in special cases.
- Not catchable in Perl.
- Catchable, but to do so is much more likely to get in the user's way than to help her.
But it's a very nicely itemized list and it's a useful exercise every time a programmer encounters a new type of application for her to think out each of these cases, to see if she is doing all she can to help her users. I found thinking it over very useful. Thanks.
You might consider extending this list with your redaction of my basic cases, plus Larry Wall's "lightning bolt from Zeus" as mentioned in his description of Hubris as one of the programmer's virtues, and posting it as a Meditation. I'd find it useful for reference.