Use the HandleError method to implement error-related behaviors such as error logging, system notifications, shutting down the application, and so on, and return a value that specifies whether the exception has been handled appropriately.
Note: |
|---|
Because the HandleError method can be called from many different places there are no guarantees made about which thread the method is called on. Do not depend on HandleError method being called on the operation thread. |
All IErrorHandler implementations are called. By default (when the return value is false), if there is an exception, the dispatcher aborts any session and aborts the InstanceContext if the InstanceContextMode is anything other than Single. The exception is then considered unhandled and any state is considered corrupt.
Return true from HandleError(Exception) to prevent this default behavior. If any error handler returns true it instructs WCF that it is safe to continue using state associated with the failed request.
If no error handler returns true from the HandleError method the exception is considered unhandled and the default response applies, potentially resulting in an aborted System.ServiceModel..::.InstanceContext and channel when communicating on a session channel or the ServiceBehaviorAttribute..::.InstanceContextMode property is not set to InstanceContextMode..::.Single.
The error parameter is never nullNothingnullptra null reference (Nothing in Visual Basic) and contains the exception object that was thrown.