Let me assume the former :-), and so here is one more attempt at describing the guidance in the most succinct way I am capable of: ?? For each error condition you reusable routine can get into, decide whether the condition is a usage error or a system error. o A usage error is something that can be avoided by changing the code that calls your routine.