When to use an assertion and when to use an exception
Out of my mind (list may be incomplete, and is too long to fit in a comment), I would say: use exceptions when checking parameters passed to public or protected methods and constructors use exceptions when interacting with the user or when you expect the client code to recover from an exceptional situation use exceptions … Read more