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 illustre l'utilisation d'un bloc try/catch pour intercepter et gérer des objets FaultException levés 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 classe FaultException pour créer une erreur non typée à retourner au client à des fins de débogage.
Dans un client, interceptez les objets FaultException pour gérer les erreurs inconnues ou génériques, comme celles retournées par un service avec la valeur IncludeExceptionDetailInFaults affectée à la propriété true
. Étant donné que FaultException étend CommunicationException, pensez à intercepter tous les objets FaultException avant d'intercepter les objets CommunicationException si vous souhaitez les intercepter séparément.
Notes
Les services en duplex peuvent également intercepter les objets FaultException retournés de leur interaction avec un client duplex.
En général, il est fortement recommandé d'utiliser l'FaultContractAttribute pour concevoir vos services afin de retourner les erreurs SOAP fortement typées (et pas les objets exception managés) pour tous les cas d'erreur dans lesquels vous décidez que le client a besoin des informations sur l'erreur. Toutefois, utilisez l'FaultException dans les situations suivantes :
Pour envoyer des erreurs SOAP d'un service à des fins de débogage.
Pour intercepter des erreurs SOAP sur un client lorsque les erreurs ne font pas partie du contrat de service.
Levez des objets FaultException lorsque vous souhaitez que la chaîne soit passée au constructeur et récupérée par le client en appelant la méthode FaultException<TDetail>.ToString. 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 comme propriété FaultException<TDetail>.Detail et pas en appelant FaultException<TDetail>.ToString.
Pour plus d’informations, consultez Spécification et gestion des erreurs dans les contrats et les services.
Constructeurs
FaultException() |
Initialise une nouvelle instance de la classe FaultException. |
FaultException(FaultReason) |
Initialise une nouvelle instance de la classe FaultException à l'aide de la raison spécifiée. |
FaultException(FaultReason, FaultCode) |
Initialise une nouvelle instance de la classe FaultException à l'aide de la raison et du code d'erreur spécifiés. |
FaultException(FaultReason, FaultCode, String) |
Initialise une nouvelle instance de la classe FaultException à l'aide de la raison, du code d'erreur et de la valeur d'action spécifiés. |
FaultException(MessageFault) |
Initialise une nouvelle instance de la classe FaultException à l'aide des valeurs d'erreur du message spécifiées. |
FaultException(MessageFault, String) |
Initialise une nouvelle instance de la classe FaultException à l'aide des valeurs d'erreur du message spécifiées et de la chaîne d'action fournie. |
FaultException(SerializationInfo, StreamingContext) |
Initialise une nouvelle instance de la classe FaultException à l'aide des informations de sérialisation spécifiées et du contexte lors de la désérialisation d'un flux en objet FaultException. |
FaultException(String) |
Initialise une nouvelle instance de la classe FaultException avec la raison de l'erreur spécifiée. |
FaultException(String, FaultCode) |
Initialise une nouvelle instance de la classe FaultException à l'aide de la raison et du code d'erreur SOAP spécifiés. |
FaultException(String, FaultCode, String) |
Initialise une nouvelle instance de la classe FaultException à l'aide de la raison, du code d'erreur et de la valeur d'action spécifiés. |
Propriétés
Action |
Obtient la valeur de l'action SOAP pour le message d'erreur. |
Code |
Obtient le code d'erreur pour l'erreur SOAP. |
Data |
Obtient une collection de paires clé/valeur qui fournissent des informations définies par l'utilisateur supplémentaires 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 qui est assigné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 pour l'exception. |
Reason |
Obtient la FaultReason de l'erreur SOAP. |
Source |
Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur. (Hérité de Exception) |
StackTrace |
Obtient une représentation sous forme de chaîne des frames immédiats 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
CreateFault(MessageFault, String, Type[]) |
Retourne un objet FaultException de l'erreur de message spécifiée, une action et un tableau de types de détails. |
CreateFault(MessageFault, Type[]) |
Retourne un objet FaultException de l'erreur de message spécifiée et un tableau de types de détails. |
CreateMessageFault() |
Retourne 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 à l'origine d'une ou de plusieurs exceptions ultérieures. (Hérité de Exception) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Implémentation de la méthode GetObjectData(SerializationInfo, StreamingContext) appelée lorsque l'objet est dans un flux. |
GetObjectData(SerializationInfo, StreamingContext) |
En cas de substitution dans une classe dérivée, définit SerializationInfo avec des informations sur l'exception. (Hérité de Exception) |
GetType() |
Obtient le type au moment de l'exécution de l'instance actuelle. (Hérité de Exception) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Crée et retourne une chaîne représentant l'exception actuelle. (Hérité de Exception) |
Événements
SerializeObjectState |
Obsolète.
Se produit quand une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées concernant l'exception. (Hérité de Exception) |