FaultException Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет ошибку SOAP.
public ref class FaultException : System::ServiceModel::CommunicationException
public class FaultException : System.ServiceModel.CommunicationException
[System.Serializable]
public class FaultException : System.ServiceModel.CommunicationException
[System.Serializable]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData[]))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData[]))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData))]
[System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData))]
public class FaultException : System.ServiceModel.CommunicationException
type FaultException = class
inherit CommunicationException
[<System.Serializable>]
type FaultException = class
inherit CommunicationException
[<System.Serializable>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData[]))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData[]))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultCodeData))>]
[<System.Runtime.Serialization.KnownType(typeof(System.ServiceModel.FaultException+FaultReasonData))>]
type FaultException = class
inherit CommunicationException
Public Class FaultException
Inherits CommunicationException
- Наследование
- Наследование
- Производный
- Атрибуты
Примеры
В следующем примере кода показано использование блока try/catch для перехвата и обработки FaultException объектов, создаваемых службой. Это часто происходит при включении отладки в приложении-службе.
using System;
using System.ServiceModel;
using System.ServiceModel.Channels;
using Microsoft.WCF.Documentation;
public class Client
{
public static void Main()
{
// Picks up configuration from the configuration file.
SampleServiceClient wcfClient = new SampleServiceClient();
try
{
// Making calls.
Console.WriteLine("Enter the greeting to send: ");
string greeting = Console.ReadLine();
Console.WriteLine("The service responded: " + wcfClient.SampleMethod(greeting));
Console.WriteLine("Press ENTER to exit:");
Console.ReadLine();
}
catch (TimeoutException timeProblem)
{
Console.WriteLine("The service operation timed out. " + timeProblem.Message);
wcfClient.Abort();
Console.ReadLine();
}
// Catch the contractually specified SOAP fault raised here as an exception.
catch (FaultException<GreetingFault> greetingFault)
{
Console.WriteLine(greetingFault.Detail.Message);
Console.Read();
wcfClient.Abort();
}
// Catch unrecognized faults. This handler receives exceptions thrown by WCF
// services when ServiceDebugBehavior.IncludeExceptionDetailInFaults
// is set to true.
catch (FaultException faultEx)
{
Console.WriteLine("An unknown exception was received. "
+ faultEx.Message
+ faultEx.StackTrace
);
Console.Read();
wcfClient.Abort();
}
// Standard communication fault handler.
catch (CommunicationException commProblem)
{
Console.WriteLine("There was a communication problem. " + commProblem.Message + commProblem.StackTrace);
Console.Read();
wcfClient.Abort();
}
}
}
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports Microsoft.WCF.Documentation
Public Class Client
Public Shared Sub Main()
' Picks up configuration from the configuration file.
Dim wcfClient As New SampleServiceClient()
Try
' Making calls.
Console.WriteLine("Enter the greeting to send: ")
Dim greeting As String = Console.ReadLine()
Console.WriteLine("The service responded: " & wcfClient.SampleMethod(greeting))
Console.WriteLine("Press ENTER to exit:")
Console.ReadLine()
Catch timeProblem As TimeoutException
Console.WriteLine("The service operation timed out. " & timeProblem.Message)
wcfClient.Abort()
Console.ReadLine()
' Catch the contractually specified SOAP fault raised here as an exception.
Catch greetingFault As FaultException(Of GreetingFault)
Console.WriteLine(greetingFault.Detail.Message)
Console.Read()
wcfClient.Abort()
' Catch unrecognized faults. This handler receives exceptions thrown by WCF
' services when ServiceDebugBehavior.IncludeExceptionDetailInFaults
' is set to true.
Catch faultEx As FaultException
Console.WriteLine("An unknown exception was received. " & faultEx.Message + faultEx.StackTrace)
Console.Read()
wcfClient.Abort()
' Standard communication fault handler.
Catch commProblem As CommunicationException
Console.WriteLine("There was a communication problem. " & commProblem.Message + commProblem.StackTrace)
Console.Read()
wcfClient.Abort()
End Try
End Sub
End Class
Комментарии
В службе используйте FaultException класс для создания нетипизированной ошибки, чтобы вернуться клиенту в целях отладки.
В клиенте перехватите FaultException объекты для обработки неизвестных или универсальных ошибок, например тех, которые возвращаются службой с заданным trueсвойствомIncludeExceptionDetailInFaults. Так как FaultException расширение CommunicationExceptionрасширяется, не забудьте поймать все FaultException объекты перед перехватом CommunicationException объектов, если вы хотите их поймать отдельно.
Замечание
Дуплексные службы также могут перехватывать FaultException объекты, возвращаемые из их взаимодействия с дуплексным клиентом.
Как правило, настоятельно рекомендуется использовать FaultContractAttribute для разработки служб для возврата строго типизированных ошибок SOAP (и не управляемых объектов исключений) для всех случаев сбоя, в которых клиент решает, что клиент требует сведений об ошибке. Однако используйте FaultException следующие ситуации:
Отправка ошибок SOAP из службы в целях отладки.
Чтобы поймать ошибки SOAP на клиенте, если ошибки не являются частью контракта службы.
Создает FaultException объекты, когда требуется, чтобы строка была передана конструктору и получена клиентом путем вызова FaultException<TDetail>.ToString метода. Если указать контракт сбоя типа, в котором указан параметр типаSystem.ServiceModel.FaultException<TDetail>, строковое значение доступно в качестве FaultException<TDetail>.Detail свойства, а не путем вызоваFaultException<TDetail>.ToString.System.String
Дополнительные сведения см. в разделе "Указание и обработка ошибок в контрактах и службах".
Конструкторы
| Имя | Описание |
|---|---|
| FaultException() |
Инициализирует новый экземпляр класса FaultException. |
| FaultException(FaultReason, FaultCode, String) |
Инициализирует новый экземпляр класса с помощью указанной FaultException причины, кода сбоя и значения действия. |
| FaultException(FaultReason, FaultCode) |
Инициализирует новый экземпляр класса с помощью указанной FaultException причины и кода сбоя. |
| FaultException(FaultReason) |
Инициализирует новый экземпляр класса с помощью указанной FaultException причины. |
| FaultException(MessageFault, String) |
Инициализирует новый экземпляр FaultException класса, используя указанные значения ошибки сообщения и указанную строку действия. |
| FaultException(MessageFault) |
Инициализирует новый экземпляр класса с помощью указанных значений FaultException ошибки сообщения. |
| FaultException(SerializationInfo, StreamingContext) |
Инициализирует новый экземпляр FaultException класса, используя указанные сведения о сериализации и контексте при десериализации потока в FaultException объект. |
| FaultException(String, FaultCode, String) |
Инициализирует новый экземпляр класса с помощью указанной FaultException причины, кода сбоя и значения действия. |
| FaultException(String, FaultCode) |
Инициализирует новый экземпляр класса с помощью указанной FaultException причины и кода сбоя SOAP. |
| FaultException(String) |
Инициализирует новый экземпляр FaultException класса с указанной причиной сбоя. |
Свойства
| Имя | Описание |
|---|---|
| Action |
Возвращает значение действия SOAP для сообщения об ошибке. |
| Code |
Возвращает код сбоя для ошибки SOAP. |
| Data |
Возвращает коллекцию пар "ключ-значение", которые предоставляют дополнительные пользовательские сведения об исключении. (Унаследовано от Exception) |
| HelpLink |
Возвращает или задает ссылку на файл справки, связанный с этим исключением. (Унаследовано от Exception) |
| HResult |
Возвращает или задает HRESULT, закодированное числовое значение, назначенное определенному исключению. (Унаследовано от Exception) |
| InnerException |
Возвращает экземпляр Exception, вызвавшего текущее исключение. (Унаследовано от Exception) |
| Message |
Возвращает сообщение для исключения. |
| Reason |
Возвращает ошибку FaultReason SOAP. |
| Source |
Возвращает или задает имя приложения или объекта, вызывающего ошибку. (Унаследовано от Exception) |
| StackTrace |
Возвращает строковое представление непосредственных кадров в стеке вызовов. (Унаследовано от Exception) |
| TargetSite |
Возвращает метод, который вызывает текущее исключение. (Унаследовано от Exception) |
Методы
| Имя | Описание |
|---|---|
| CreateFault(MessageFault, String, Type[]) |
FaultException Возвращает объект из указанного сбоя сообщения, действия и массива типов подробностей. |
| CreateFault(MessageFault, Type[]) |
FaultException Возвращает объект из указанного сбоя сообщения и массив типов подробностей. |
| CreateMessageFault() |
Возвращает объект MessageFault. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetBaseException() |
При переопределении в производном классе возвращает Exception, которая является основной причиной одного или нескольких последующих исключений. (Унаследовано от Exception) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
GetObjectData(SerializationInfo, StreamingContext) Реализация метода, вызываемого при сериализации объекта в поток. |
| GetType() |
Возвращает тип среды выполнения текущего экземпляра. (Унаследовано от Exception) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Создает и возвращает строковое представление текущего исключения. (Унаследовано от Exception) |
События
| Имя | Описание |
|---|---|
| SerializeObjectState |
Устаревшие..
Происходит при сериализации исключения для создания объекта состояния исключения, содержащего сериализованные данные об исключении. (Унаследовано от Exception) |