FaultException Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente une erreur 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
- Héritage
- Héritage
- Dérivé
- Attributs
Exemples
L’exemple de code suivant montre l’utilisation d’un bloc try/catch pour intercepter et gérer les FaultException objets levées à partir d’un service. Cela se produit souvent lorsque le débogage est activé dans l’application de service.
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
Remarques
Dans un service, utilisez la FaultException classe pour créer une erreur non typée pour revenir au client à des fins de débogage.
Dans un client, interceptez FaultException les objets pour gérer les erreurs inconnues ou génériques, telles que celles retournées par un service avec la IncludeExceptionDetailInFaults propriété définie sur true. Comme FaultException l’étend CommunicationException, n’oubliez pas d’intercepter les FaultException objets avant d’intercepter CommunicationException les objets si vous souhaitez les intercepter séparément.
Note
Les services duplex peuvent également intercepter les FaultException objets retournés par leur interaction avec un client duplex.
En général, il est fortement recommandé d’utiliser la FaultContractAttribute conception de vos services pour retourner des erreurs SOAP fortement typées (et non des objets d’exception managés) pour tous les cas d’erreur dans lesquels vous décidez que le client requiert des informations d’erreur. Toutefois, utilisez les FaultException situations suivantes :
Pour envoyer des erreurs SOAP à partir d’un service à des fins de débogage.
Pour intercepter les erreurs SOAP sur un client lorsque les erreurs ne font pas partie du contrat de service.
Lèvez FaultException des objets lorsque vous souhaitez que la chaîne soit transmise au constructeur et récupérée par le client en appelant la FaultException<TDetail>.ToString méthode. Si vous spécifiez un contrat d’erreur de type System.ServiceModel.FaultException<TDetail> où le paramètre de type est System.String, la valeur de chaîne est disponible en tant que FaultException<TDetail>.Detail propriété et non en appelant FaultException<TDetail>.ToString.
Pour plus d’informations, consultez Spécification et gestion des erreurs dans les contrats et les services.
Constructeurs
| Nom | Description |
|---|---|
| FaultException() |
Initialise une nouvelle instance de la classe FaultException. |
| FaultException(FaultReason, FaultCode, String) |
Initialise une nouvelle instance de la FaultException classe à l’aide de la raison, du code d’erreur et de la valeur d’action spécifiés. |
| FaultException(FaultReason, FaultCode) |
Initialise une nouvelle instance de la FaultException classe à l’aide du code de raison et d’erreur spécifiés. |
| FaultException(FaultReason) |
Initialise une nouvelle instance de la FaultException classe à l’aide de la raison spécifiée. |
| FaultException(MessageFault, String) |
Initialise une nouvelle instance de la FaultException classe à l’aide des valeurs d’erreur de message spécifiées et de la chaîne d’action fournie. |
| FaultException(MessageFault) |
Initialise une nouvelle instance de la FaultException classe à l’aide des valeurs d’erreur de message spécifiées. |
| FaultException(SerializationInfo, StreamingContext) |
Initialise une nouvelle instance de la FaultException classe à l’aide des informations et du contexte de sérialisation spécifiés lors de la désérialisation d’un flux dans un FaultException objet. |
| FaultException(String, FaultCode, String) |
Initialise une nouvelle instance de la FaultException classe à l’aide de la raison, du code d’erreur et de la valeur d’action spécifiés. |
| FaultException(String, FaultCode) |
Initialise une nouvelle instance de la FaultException classe à l’aide de la raison spécifiée et du code d’erreur SOAP. |
| FaultException(String) |
Initialise une nouvelle instance de la FaultException classe avec la raison d’erreur spécifiée. |
Propriétés
| Nom | Description |
|---|---|
| Action |
Obtient la valeur de l’action SOAP pour le message d’erreur. |
| Code |
Obtient le code d’erreur de l’erreur SOAP. |
| Data |
Obtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l’utilisateur sur l’exception. (Hérité de Exception) |
| HelpLink |
Obtient ou définit un lien vers le fichier d’aide associé à cette exception. (Hérité de Exception) |
| HResult |
Obtient ou définit HRESULT, valeur numérique codée affectée à une exception spécifique. (Hérité de Exception) |
| InnerException |
Obtient l’instance Exception qui a provoqué l’exception actuelle. (Hérité de Exception) |
| Message |
Obtient le message de l’exception. |
| Reason |
Obtient l’erreur FaultReason SOAP. |
| Source |
Obtient ou définit le nom de l’application ou de l’objet qui provoque l’erreur. (Hérité de Exception) |
| StackTrace |
Obtient une représentation sous forme de chaîne des images immédiates sur la pile des appels. (Hérité de Exception) |
| TargetSite |
Obtient la méthode qui lève l’exception actuelle. (Hérité de Exception) |
Méthodes
| Nom | Description |
|---|---|
| CreateFault(MessageFault, String, Type[]) |
Retourne un FaultException objet à partir de l’erreur de message, de l’action et d’un tableau de types de détails spécifiés. |
| CreateFault(MessageFault, Type[]) |
Retourne un FaultException objet à partir de l’erreur de message spécifiée et d’un tableau de types de détails. |
| CreateMessageFault() |
Renvoie un objet MessageFault. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetBaseException() |
En cas de substitution dans une classe dérivée, retourne la Exception qui est la cause racine d’une ou plusieurs exceptions ultérieures. (Hérité de Exception) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Implémentation de la GetObjectData(SerializationInfo, StreamingContext) méthode appelée lorsque l’objet est sérialisé dans un flux. |
| GetType() |
Obtient le type d’exécution de l’instance actuelle. (Hérité de Exception) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Crée et retourne une représentation sous forme de chaîne de l’exception actuelle. (Hérité de Exception) |
Événements
| Nom | Description |
|---|---|
| SerializeObjectState |
Obsolète.
Se produit lorsqu’une exception est sérialisée pour créer un objet d’état d’exception qui contient des données sérialisées sur l’exception. (Hérité de Exception) |