Documentation Boost.Asio suggests the following exception handling pattern:Gestion des exceptions dans 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.
}
}
Le problème est que le contexte d'exception est perdue au moment où il est traité. Par exemple, si j'ai plusieurs sessions socket dans un io_service donné, je ne sais pas lequel a causé l'exception.
Quelle serait une meilleure façon de gérer les exceptions des gestionnaires asynchrones sans les enveloppant dans try/catch
blocs?