Answer: When you're the one who threw it. Starting with the CLR version 2.0, the policy for handling a StackOverflowException was changed. User code can no longer handle the exception[1]. Instead the CLR will simply terminate the process.
Read More...