You gave several examples of P5 error checking, but didn't give the P6 version(s). Also, isn't there a way of telling the Failure object why the failure happened?
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?