bartosz.lipinski
bartosz.lipinski

Reputation: 2677

ExecutionEngineException not caught

I am curious why ExecutionEngineException is not caught when I am executing the code below.

try                            
{
   ((Window)window).Close();
}
catch (Exception e)
{
   Console.WriteLine(e);
}

The WriteLine will never be reached. Any ideas how to catch this exception ?

Note: I know the exception is thrown by AvalonDock when one of DockablePanes is in AutoHide mode, is visible and user is trying to close wpf window.

Update: I've read the remarks section on msdn regarding this exception:

The CLR never throws this exception in such a way that managed code can catch it.

So the question is how to close application nicely after something like that.

Upvotes: 0

Views: 1275

Answers (2)

Demir
Demir

Reputation: 1837

Consider adding [System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions()] attribute to the method that your code is executed.

Upvotes: 0

João Angelo
João Angelo

Reputation: 57718

The ExecutionEngineException represents a fatal error from which you should not try to recover or handle. You need to tackle this at the source of the problem before it happens and not try to handle it gracefully.

Since you say you already know the source of the problem you should take actions to prevent the application to reach the state where its forced to throw the fatal exception.

Upvotes: 2

Related Questions