What reasons are known a thread stops suddenly?

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Feb 4 23:59:34 PST 2016


On 02/04/2016 10:41 PM, tcak wrote:
 > On Friday, 5 February 2016 at 06:23:09 UTC, Daniel Kozak wrote:
 >> V Fri, 05 Feb 2016 03:47:40 +0000
 >> tcak via Digitalmars-d-learn <digitalmars-d-learn at puremagic.com>
 >> napsáno:
 >>
 >>> [...]
 >>
 >> Did you try catch Throwable instead of Exception?

I was about to write same thing. :)

 > Undid the fix, and wrapped the problem causing function call with
 > try-catch-Throwable, it is caught now.

However, it is not recommended to catch Throwable (nor Error).

 > I always used Exception before, thinking that it was the base of all
 > exceptions.

Exception is topmost exception that makes sense to catch because it 
represents recoverable situations. Error on the other hand is for 
irrecoverable errors representing situations that may be so buggy that 
even try-catch may not work properly.

      Throwable
       /     \
Exception   Error

Imagine that the out-of-bounds error was due to some memory corruption. 
If so, all bets are off... We don't know what state the program is in. 
If we catch Throwable (or Error) and continue operating, we may produce 
completely wrong results.

Of course, in this case I think you are just logging that the thread is 
exiting. (Even then, in theory, the attempt to log can format the cloud 
data center. :p)

Ali



More information about the Digitalmars-d-learn mailing list