documentazione Boost.Asio suggests the following exception handling pattern Eccezione:manipolazione in 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.
}
}
Il problema è che il contesto d'eccezione si perde nel momento in cui è gestita. Ad esempio, se ho più sessioni socket in un dato io_service, non so quale abbia causato l'eccezione.
Quale sarebbe un modo migliore per gestire le eccezioni dai gestori asincroni senza inserendoli nei blocchi try/catch
?