मान लिया जाये कि हम एक पुस्तकालय लिख रहे हैं और है कि हम त्रुटि और अपवादों से अधिक ठीक अनाज नियंत्रण प्रदान करना चाहते हैं:हमें std :: error_code संगत एपीआई को कैसे कार्यान्वित करना चाहिए?
void foo();
void foo(std::error_code&);
सकता था कि हम एक std::system_error
फेंकने के रूप में foo()
को लागू करने और 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