关于c ++:lexical_cast int to string

lexical_cast int to string

当把int转换成std::string时,忽略boost::lexical_cast的例外是安全的吗?


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


正如您所说,我不认为由于转换的原因,对数值类型的转换会失败——当然,它仍然会失败,因为字符串不能被分配,但是人们通常不会捕获该错误,除非在代码的最高级别。


如果您"忽略"一个异常,它将传播回调用堆栈,直到它被捕获到其他地方,或者它终止了程序,那么您可以安全地不捕获异常,而不必担心程序的继续和执行不安全/未知的操作(只要"崩溃"到命令提示是可接受的错误行为,还是您有其他处理未知异常的方法)。

不幸的是,异常堆栈跟踪在C++中不是那么容易实现的,所以当异常不在本地捕获时,创建有用的错误消息并不总是容易的。