Если вы используете исключение std:: logic_error в своем коде, в каком случае вы используете его для?
С++: Каково подходящее использование для исключения std:: logic_error?
Ответ 1
logic_error
является базой для этих исключений:
domain_error
, invalid_argument
, length_error
, out_of_range
.
Все это логические ошибки: ошибки ошибочны во вводе, так что вывод будет нелогичным. Поэтому я бы сказал, что вам обычно не нужно использовать его напрямую, так как эти четыре охватывают любые логические ошибки, о которых я могу думать. Но это дает вам представление о том, что такое категория.
Ответ 2
Как уже указывал GMan, это прежде всего база для других классов исключений. Вы можете использовать его непосредственно для чего-то, что в основном является утверждением. Например. если какой-либо код зависит от конкретного объекта, который был сконструирован до его выполнения, ему может быть целесообразно выбрасывать logic_error
(а не производную), если он выполняется, и этот объект еще не был создан.