documentación Boost.Asio suggests the following exception handling pattern Excepción:manejo en 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.
}
}
El problema con esto es que el contexto de excepción se pierde en el punto cuando se maneja. Por ejemplo, si tengo varias sesiones de socket en un io_servicio dado, no sé cuál causó la excepción.
¿Cuál sería una mejor forma de manejar las excepciones de los controladores asincrónicos sin envolviéndolos en los bloques try/catch
?