NServiceBus cannot guarantee the handling of certain types of exceptions.
AccessViolationException
If an AccessViolationException
is thrown, the endpoint will likely terminate. This is because an AccessViolationException
thrown by the common language runtime cannot be caught by a try.
block.
While this problem can be mitigated by using HandleProcessCorruptedStateExceptionsAttribute
, Microsoft explicitly recommends not to do this.
Corrupted process state exceptions are exceptions that indicate that the state of a process has been corrupted.
For more information, see Handling Corrupted State Exceptions.
StackOverflowException
If a StackOverflowException
is thrown, the process will terminate because the exception cannot be caught by a try.
block.
OutOfMemoryException
The process may terminate if an OutOfMemoryException
is thrown. This is because, even though this exception type is handled the same way as all others if the lack of sufficient memory persists, another instance of OutOfMemoryException
may be thrown while the original exception is being handled.