【发布时间】:2009-12-05 19:18:38
【问题描述】:
我想使用 boost::asio 但我不希望 boost 抛出异常,因为在我的环境中不能引发异常。
我遇到过BOOST_NO_EXCEPTIONS,但documentation 表示 throw_exception 的调用者可以假定此函数永远不会返回。
但是用户提供的函数怎么能不返回呢?我需要在这里插入什么替换功能?如果 boost 代码想要抛出异常,我是否必须终止进程?
【问题讨论】:
-
我认为所有可能抛出的 boost ASIO 函数都提供了一个明确不抛出的重载(ASIO 错误)。这些重载需要你传入一个 boost::system::error_code 对象。
-
例如在函数中调用
exit(1);会在函数有机会返回之前退出程序。