ExceptionHandler Класс

Определение

Расширьте класс ExceptionHandler для создания обработчика исключений для необработанных исключений, появляющихся во время работы Windows Communication Foundation (WCF).Extend the ExceptionHandler class to create an exception handler for unhandled exceptions that occur within the Windows Communication Foundation (WCF) runtime.

public ref class ExceptionHandler abstract
public abstract class ExceptionHandler
type ExceptionHandler = class
Public MustInherit Class ExceptionHandler
Наследование
ExceptionHandler

Примеры

В следующем образце кода показана реализация абстрактного класса ExceptionHandler, который переопределяет метод HandleException.The following code example shows an implementation of the ExceptionHandler abstract class that overrides the HandleException method.

using System;
using System.ServiceModel.Dispatcher;

namespace CS
{
    public class MyExceptionHandler: ExceptionHandler
    {
            // HandleException method override gives control to 
            // your code.
            public override bool HandleException ( Exception ex )
            {
                // This method contains logic to decide whether 
                // the exception is serious enough
                // to terminate the process.
                return ShouldTerminateProcess (ex);
            }

            public bool ShouldTerminateProcess (Exception ex)
            {
                // Write your logic here.
                return  true;
            }
    } 
  


Imports System.ServiceModel.Dispatcher

Namespace CS
    Public Class MyExceptionHandler
        Inherits ExceptionHandler
            ' HandleException method override gives control to 
            ' your code.
            Public Overrides Function HandleException(ByVal ex As Exception) As Boolean
                ' This method contains logic to decide whether 
                ' the exception is serious enough
                ' to terminate the process.
                Return ShouldTerminateProcess (ex)
            End Function

            Public Function ShouldTerminateProcess(ByVal ex As Exception) As Boolean
                ' Write your logic here.
                Return True
            End Function
    End Class

В следующем примере кода показано, как включить пользовательский MyExceptionHandler для необработанных исключений, происходящих в среде выполнения WCF.The following code example shows how to enable the custom MyExceptionHandler for unhandled exceptions that occur within the WCF runtime.

    static void Main(string[] args)
    {
        // Create an instance of the MyExceptionHandler class.
        MyExceptionHandler thisExceptionHandler =
            new MyExceptionHandler();

        // Enable the custom handler by setting 
        //   AsynchronousThreadExceptionHandler property
        //   to this object.
        ExceptionHandler.AsynchronousThreadExceptionHandler = 
            thisExceptionHandler;

        // After the handler is set, write your call to 
        // System.ServiceModel.ICommunication.Open here
    }
}
    Sub Main(ByVal args() As String)
        ' Create an instance of the MyExceptionHandler class.
        Dim thisExceptionHandler As New MyExceptionHandler()

        ' Enable the custom handler by setting 
        '   AsynchronousThreadExceptionHandler property
        '   to this object.
        ExceptionHandler.AsynchronousThreadExceptionHandler = thisExceptionHandler

        ' After the handler is set, write your call to 
        ' System.ServiceModel.ICommunication.Open here
    End Sub
End Module

Комментарии

Расширьте класс ExceptionHandler и переопределите метод HandleException для определения, следует ли исключению закрывать приложение.Extend the ExceptionHandler class and override the HandleException method to determine whether an exception should terminate the application. Затем создайте новый экземпляр пользовательского ExceptionHandler класса и назначьте его статическому AsynchronousThreadExceptionHandler свойству или TransportExceptionHandler перед созданием клиентов или служб WCF.Then create a new instance of your custom ExceptionHandler class and assign it to the static AsynchronousThreadExceptionHandler or TransportExceptionHandler property prior to creating WCF clients or services.

Конструкторы

ExceptionHandler()

Инициализирует новый экземпляр класса ExceptionHandler.Initializes a new instance of the ExceptionHandler class.

Свойства

AlwaysHandle

Получает экземпляр объекта ExceptionHandler, обрабатывающий все исключения.Gets an instance of ExceptionHandler that handles all exceptions.

AsynchronousThreadExceptionHandler

Получает или задает реализацию текущего объекта ExceptionHandler для домена приложения.Gets or sets the current ExceptionHandler implementation for the application domain.

TransportExceptionHandler

Получает или задает реализацию текущего транспортного объекта ExceptionHandler для домена приложения.Gets or sets the current transport ExceptionHandler implementation for the application domain.

Методы

Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
HandleException(Exception)

При переопределении в производном классе возвращает значение true, если исключение было обработано, или значение false, если исключение необходимо заново генерировать, а приложение закрыть.When overridden in a derived class, returns true if the exception has been handled, or false if the exception should be rethrown and the application terminated.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Применяется к