MSDN 说,对于Thread.Abort方法-
When this method is invoked on a thread, the system throws a ThreadAbortException in the thread to abort it. ThreadAbortException is a special exception that can be caught by application code, but is re-thrown at the end of the catch block unless ResetAbort is called. ResetAbort cancels the request to abort, and prevents the ThreadAbortException from terminating the thread. Unexecuted finally blocks are executed before the thread is aborted.
So the exception would be thrown only once from the most immediate catch block, or from all encapsulating catch blocks ?
Also, when saying unexecuted finally blocks are executed, does it include both totally unexecuted and partially executed blocks?