boost::lexical_cast
转换为时忽略异常是否int
安全std::string
?
问问题
6448 次
3 回答
17
转换为时词法转换引发的异常int
与std::string
转换无关,而是与资源不可用相关联。因此,您可以像忽略bad_alloc
operator new 引发的异常一样忽略它。
于 2010-04-29T09:54:47.067 回答
6
正如你所说,我不相信由于转换原因,数字类型的强制转换会失败 - 当然,它仍然可能失败,因为字符串无法分配,但人们通常不会捕捉到该错误,除非在最高级别他们的代码。
于 2010-04-29T09:44:38.073 回答
0
如果你“忽略”一个异常,它将传播回调用堆栈,直到它在其他地方被捕获,或者它终止程序,关键是你可以安全地不捕获异常,而不用担心你的程序继续执行和做不安全/未知的事情(如只要命令提示符的“崩溃”是可接受的错误行为,或者您有其他处理未知异常的方法)。
不幸的是,异常堆栈跟踪在 C++ 中并不那么容易获得,因此在本地未捕获异常时创建有用的错误消息并不总是那么容易。
于 2010-06-24T16:15:57.080 回答