
On Tue, Jul 14, 2009 at 11:56 AM, Alex Black<alex@alexblack.ca> wrote:
I'm using boost::asio for sockets, writing a response out to a client.
If the client stops part way through getting the response, then my server process dies:
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error>
' what(): Broken pipe
The code though is surrounded by try catch like this:
try { ... } catch ( std::exception& e ) { cout << e.what() << endl; } catch ( ... ) { cout << "unexpected exception" << endl; }
How do I prevent my process from aborting/terminating like this?
Have you verified that the code inside the try block executes on the same thread that the exception is occuring in?