I am interested to know why the CLR throws a ThreadAbortException?
Because the flow is interrupted. People handle all exceptions all the time, although this is dangerous. It would be strange if the error logging program, say, retained a stream that was supposed to be destroyed forever, no?
Is there any other system exception that receives special handling from the CLR?
Yes, there are several. For example, stacks and exceptions from memory also have special behavior.
source share