C ++: Как правильно использовать исключение std :: logic_error? - PullRequest
12 голосов
/ 25 февраля 2010

Если вы используете исключение std :: logic_error в своем коде, в каком случае вы его используете?

Ответы [ 2 ]

6 голосов
/ 25 февраля 2010

logic_error является основанием для этих исключений: domain_error, invalid_argument, length_error, out_of_range.

Это все логические ошибки: что-то не так с вводом, что вывод будет нелогичным. Поэтому я бы сказал, что вам обычно не нужно использовать его напрямую, поскольку эти четыре охватывают любые логические ошибки, о которых я могу думать. Но они дают вам представление о том, что категория.

2 голосов
/ 25 февраля 2010

Как уже отмечал GMan, это прежде всего основа для других классов исключений. Вы можете рассмотреть возможность использования его непосредственно для чего-то, что в основном является утверждением. Например. если какой-то код зависит от того, какой конкретный объект был создан до того, как он выполняется, может быть уместно выдать logic_error (а не производную), если он выполняется и этот объект еще не был построен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...