Сообщение Re[4]: Какое стандартное исключение кинуть? от 14.02.2025 14:44
Изменено 14.02.2025 14:50 пффф
Re[4]: Какое стандартное исключение кинуть?
Здравствуйте, m2user, Вы писали:
П>>Пока склоняюсь к range_error
M>Почему именно range_error (std::runtime_error), а не out_of_range (std::logic_error)?
Моё поведение у меня ассоциируется с обращением по недопустимому адресу в ОС, это мне кажется больше похоже на runtime_error, а не logic_error. Хотя, насчет out_of_range тоже подумываю
П>>Пока склоняюсь к range_error
M>Почему именно range_error (std::runtime_error), а не out_of_range (std::logic_error)?
Моё поведение у меня ассоциируется с обращением по недопустимому адресу в ОС, это мне кажется больше похоже на runtime_error, а не logic_error. Хотя, насчет out_of_range тоже подумываю
Re[4]: Какое стандартное исключение кинуть?
Здравствуйте, m2user, Вы писали:
П>>Пока склоняюсь к range_error
M>Почему именно range_error (std::runtime_error), а не out_of_range (std::logic_error)?
Моё поведение у меня ассоциируется с обращением по недопустимому адресу в ОС, это мне кажется больше похоже на runtime_error, а не logic_error. Хотя, насчет out_of_range тоже подумываю
Хотя, глянул range_error:
И out_of_range:
По идее да, надо кидать out_of_range. Но смотрю std::stoull:
Хотя, по идее, должна кидать как раз range_error
П>>Пока склоняюсь к range_error
M>Почему именно range_error (std::runtime_error), а не out_of_range (std::logic_error)?
Моё поведение у меня ассоциируется с обращением по недопустимому адресу в ОС, это мне кажется больше похоже на runtime_error, а не logic_error. Хотя, насчет out_of_range тоже подумываю
Хотя, глянул range_error:
Defines a type of object to be thrown as exception. It can be used to report range errors (that is, situations where a result of a computation cannot be represented by the destination type).
И out_of_range:
Defines a type of object to be thrown as exception. It reports errors that are consequence of attempt to access elements out of defined range.
По идее да, надо кидать out_of_range. Но смотрю std::stoull:
Exceptions
std::invalid_argument if no conversion could be performed.
std::out_of_range if the converted value would fall out of the range of the result type or if the underlying function (std::strtoul or std::strtoull) sets errno to ERANGE.
Хотя, по идее, должна кидать как раз range_error