Stream Processing Improvement

I am trying to make an exception in a thread and allow the calling process to catch it. However, it looks like this will cause the entire application to crash. See Attached Test Code, never prints an exit statement.

1 #include <boost/thread.hpp> 2 #include <iostream> 3 4 void wait(int seconds) 5 { 6 boost::this_thread::sleep(boost::posix_time::seconds(seconds)); 7 } 8 9 void thread() 10 { 11 for (int i = 0; i < 5; ++i) 12 { 13 wait(1); 14 std::cout << i << std::endl; 15 } 16 throw; 17 } 18 19 int main() 20 { 21 try 22 { 23 boost::thread t(thread); 24 t.join(); 25 std::cout << "Exit normally\n"; 26 } 27 catch (...) 28 { 29 std::cout << "Caught Exception\n"; 30 } 31 } 
+4
source share
1 answer

Look at the thrown exception: Transporting exceptions between threads . This approach worked well for me.

+5
source

Source: https://habr.com/ru/post/1381615/


All Articles