
The discussion drifted away from "should we be able to pass exceptions from one thread to another" to a more general topic of what to in case of unexpected errors. I'd like to put in my $0.02 cents here. While there are cases where the best solution to unexpected errors, is restart a thread, ignore part of the results and pray. I think they are not that common and require explicit programmer action to decide when to pray and when to really give up and abort the program. Catching and silently ignoring an error by default is IMHO the worst possible choice. It should be possible for a programmer to ignore a lot of errors if he wants to, even acces violations in some cases, but I think the default behavior should be for the system to "scream" as as loud as possible if something unexpected happens. So coming back to the boost.threads discussion, if the default behavior for unexpected exceptions was to dump core, or jump into the debugger that seems like a pretty loud scream. (As several others allready pointed out the more information you get in a situation like this the better) When I need other behavior, it should be a conscious decission on my part to handle these unexpected situations, and then they are not really unexpected anymore. Kind regards, Rob Lievaart. <war story> The first example that comes to mind is a system where I spent a week and a half looking for a bug (After several others had tried to find it before me an failed) that had been in the system for wel over a year. The bug caused _allways_ caused an error in the program that was silently ignored. The program worked "perfectly", for a while, untill the harddisks became larger and the amount of free space on customers computer increased. Then it started giving loads of problems. If this error had not been silently ignored, the bug would have been spotted during the first test after it was introduced, and it probably would never have been checked in into the revision control system. </ware story>