ExceptionHandler Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Расширьте класс ExceptionHandler для создания обработчика исключений для необработанных исключений, появляющихся во время работы Windows Communication Foundation (WCF).
public ref class ExceptionHandler abstract
public abstract class ExceptionHandler
type ExceptionHandler = class
Public MustInherit Class ExceptionHandler
- Наследование
-
ExceptionHandler
Примеры
В следующем образце кода показана реализация абстрактного класса ExceptionHandler, который переопределяет метод HandleException.
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.
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 для определения, следует ли исключению закрывать приложение. Затем создайте новый экземпляр пользовательского ExceptionHandler класса и назначьте его статическому AsynchronousThreadExceptionHandler свойству или TransportExceptionHandler перед созданием клиентов или служб WCF.
Конструкторы
ExceptionHandler() |
Инициализирует новый экземпляр класса ExceptionHandler. |
Свойства
AlwaysHandle |
Получает экземпляр объекта ExceptionHandler, обрабатывающий все исключения. |
AsynchronousThreadExceptionHandler |
Получает или задает реализацию текущего объекта ExceptionHandler для домена приложения. |
TransportExceptionHandler |
Получает или задает реализацию текущего транспортного объекта ExceptionHandler для домена приложения. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
HandleException(Exception) |
При переопределении в производном классе возвращает значение |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |