ABSTRACT

B Every single procedure and function checks the sanity of its arguments and refuses to continue when the arguments are unreasonable.

B All code blocks check for all possible errors, possibly log context-specific messages when errors occur, and pass the errors up the function call chain.