如何抛出提升不良词汇投射异常

how to throw boost bad lexical cast exception

本文关键字:异常 词汇 不良 何抛出      更新时间:2023-10-16

任何人都可以告诉我如何抛出bad_lexical_cast异常。

对于单元测试模拟,我有以下代码:

if(!Throw)
    return boost::lexical_cast<std::string>(some_value);
else
    throw boost::throw_exception(boost::bad_lexical_cast());

但这给出了如下编译错误:

error: invalid use of ‘void’ throw boost::throw_exception(boost::bad_lexical_cast());

删除第一个throwboost::throw_exception是一个简单地自行执行的功能。 更具体地说,boost::throw_exception将异常作为参数,并使用该传递的参数的副本引发异常。

if(!Throw)
    return boost::lexical_cast<std::string>(some_value);
else
    boost::throw_exception(boost::bad_lexical_cast());

boost::throw_exception实际上是 Boost.Exception 库的一部分,该库以一些巧妙的方式使用 C++,允许您在保留原始异常类型的同时将其他信息附加到异常。 有关详细信息,请查看链接的文档。