假設我們正在編寫一個庫,我們要提供對錯誤和異常精細控制:我們應該如何實現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