IMO,
std::logic_error
запрограммирован пользовательской программой C ++ logic . Предсказывается пользовательской программой. std::runtime_error
вызывается средой выполнения C ++ (или основной частью langauge ...) для абстрактных ошибок нижнего уровня. Просто происходит без каких-либо намерений без привлечения какого-либо кода пользователя.