Boost.Asio प्रलेखन suggests the following exception handling pattern में से निपटने:अपवाद Boost.Asio
boost::asio::io_service io_service;
...
for (;;)
{
try
{
io_service.run();
break; // run() exited normally
}
catch (my_exception& e)
{
// Deal with exception as appropriate.
}
}
इसके साथ समस्या यह है कि अपवाद के संदर्भ बिंदु पर खो दिया है जब यह संभाला जाता है। उदाहरण के लिए, यदि मेरे पास किसी दिए गए io_service में एकाधिक सॉकेट सत्र हैं, तो मुझे नहीं पता कि किसने अपवाद का कारण बना दिया।
क्या बिना उन्हें try/catch
ब्लॉकों में लपेटकर अतुल्यकालिक संचालकों से अपवाद को संभालने के लिए एक बेहतर तरीका हो सकता है?