13

boost::lexical_cast转换为时忽略异常是否int安全std::string

4

3 回答 3

17

转换为时词法转换引发的异常intstd::string转换无关,而是与资源不可用相关联。因此,您可以像忽略bad_allocoperator new 引发的异常一样忽略它。

于 2010-04-29T09:54:47.067 回答
6

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

于 2010-04-29T09:44:38.073 回答
0

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

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

于 2010-06-24T16:15:57.080 回答