Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which exception terminates process ? (iis's w3wp)

I've read this article trying to find : "Which exceptions terminates the entire process" ( iis , so basically the application pool terminates - w3wp.exe)

I already know (from my experience) that :

  • StackOverflow exceptions does terminates
  • Outofmemory exceptions also terminates

I already read Hans' answer here which redirects to SSCLI20 source code where he gave an example of the code :

TerminateProcess(GetCurrentProcess(), COR_E_STACKOVERFLOW);

So I downloaded the SSCLI20 and searched for more of TerminateProcess(GetCurrentProcess()...

And found those entries :

enter image description here

But I'm not sure that this is the whole list , and even if so - it is notvery clear.

Question

Where can I find the complete list of exceptions which terminates the process ?

like image 956
Royi Namir Avatar asked May 19 '14 15:05

Royi Namir


1 Answers

Found it.
Richter to the rescue.

The professional term is called : corrupted state exceptions (CSE'e)

Corrupted State Exceptions (CSE): These are the exceptions which cannot be caught. Behind the scene Environment's FailFast method throws one of these exceptions. Hence, it cannot be caught and your application ends with an unhandled exception.

From book :

enter image description here

more :

enter image description here

important :

Note: Even with the attribute HandleProcessCorruptedStateExceptions, we cannot handle the following exceptions, for a given reason:

  • StackOverflowException - As this is a hardware failure and there is no more stack available for further processing (Thanks Abel Braaksma for pointing this out).

  • ExecutionEngineException - It occurs because of heap memory corruption and hence cannot be handled further (Reference).

Another helpful link via Abhishek Sur :

http://dailydotnettips.com/2013/09/23/corruptedstateexceptions-in-net-a-way-to-handle/

like image 137
Royi Namir Avatar answered Sep 28 '22 01:09

Royi Namir