lexical_cast int to string

时间:2010-04-29 09:16:15

标签: c++ boost lexical-cast

int转换为std::string时忽略boost::lexical_cast的例外是否安全?

3 个答案:

答案 0 :(得分:17)

int转换为std::string时词汇强制转换引发的异常与转换无关,但资源不可用。因此,您可以忽略这一点,就像忽略operator new引发的异常bad_alloc一样。

答案 1 :(得分:6)

正如你所说,我不相信转换可能因转换原因导致数字类型失败 - 它仍然可能因为无法分配字符串而失败,但人们通常不会捕获该错误,除非在最高级别的代码。

答案 2 :(得分:0)

如果你“忽略”一个异常,它会传回调用堆栈,直到它被别处捕获,或者它终止程序,你可以安全地捕获异常,而不用担心你程序继续并执行不安全/未知的事情(只要命令提示符“崩溃”是可接受的错误行为,或者您有其他处理未知异常的方法)。

不幸的是,异常堆栈跟踪在C ++中并不容易获得,因此在本地未捕获异常时创建有用的错误消息并不容易。