Lexical_cast int для строки

Можно ли игнорировать исключение boost::lexical_cast при преобразовании int в std::string?

Ответ 1

Исключение, вызванное лексическим приведением при преобразовании int в std::string, не связано с преобразованием, а к ресурсу недоступно. Таким образом, вы можете игнорировать это так же, как игнорируете исключение bad_alloc, вызванное оператором new.

Ответ 2

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

Ответ 3

Если вы проигнорируете исключение, оно будет распространять резервную копию стека вызовов до тех пор, пока оно не будет обнаружено в другом месте или оно не завершит программу, поскольку вы можете безопасно не перехватывать исключения, не беспокоясь о том, что вы продолжаете программу и выполняете небезопасные/неизвестные (до тех пор, пока "ошибка" командной строки является допустимым поведением ошибки или у вас есть другой способ справиться с неизвестными исключениями).

К сожалению, стеки стека исключений не так легко получить на С++, поэтому создание полезных сообщений об ошибках, когда исключения не локализованы локально, не всегда легко.