title: Why is there std::logic_error?
body: <p>I have been told that you will only throw exceptions to handle "external problems", like problems that are not internal, i.e., only with run-time problems. But I just discovered the <code>std::logic_error</code> exception, and I started asking myself: Why has it been created when you most likely not would throw an exception rather than using assert or just internal logic, like if/else statement?</p>