This is part of ExpertCodingSkills.
Methods that return "bool" to indicate success or failure are a common source of programming bugs. Lazy or overworked programmers tend to avoid checking return codes and often don't know how to deal with them anyway.
Therefore, interfaces shouldn't use status codes. When things go wrong, throw exceptions instead.
Obviously, this guideline can't be followed if the programming language doesn't support exceptions.
