假设我们正在编写一个库,我们要提供对错误和异常精细控制:我们应该如何实现std :: error_code兼容的API?
void foo();
void foo(std::error_code&);
要高度重视,我们实现foo()
作为投掷std::system_error
,让foo(std::error_code&)
捕获所有的异常,并提取ERROR_CODE。
或者我们是否应该将foo(std::error_code&)
作为一个永不丢失的函数并根据错误代码的存在而抛出函数foo()
?
看看boost :: asio例如。 http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/reference/basic_stream_socket/connect.html – ForEveR
我想说这也取决于'foo()'的作用。 – netcoder