FaultException Classe

Définition

Représente une erreur SOAP.Represents a SOAP fault.

public ref class FaultException : System::ServiceModel::CommunicationException
[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))]
[System.Serializable]
public class FaultException : System.ServiceModel.CommunicationException
type FaultException = class
    inherit CommunicationException
Public Class FaultException
Inherits CommunicationException
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.The following code example shows the use of a try/catch block to catch and handle FaultException objects thrown from a service. Cela se produit souvent lorsque le débogage est activé dans l'application de service.This often occurs when debugging is turned on in the service application.

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.In a service, use the FaultException class to create an untyped fault to return to the client for debugging purposes.

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.In a client, catch FaultException objects to handle unknown or generic faults, such as those returned by a service with the IncludeExceptionDetailInFaults property set to 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.Because FaultException extends CommunicationException, remember to catch any FaultException objects prior to catching CommunicationException objects if you want to catch them separately.

Notes

Les services en duplex peuvent également intercepter les objets FaultException retournés de leur interaction avec un client duplex.Duplex services can also catch FaultException objects returned from their interaction with a duplex client.

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.In general, it is strongly recommended that you use the FaultContractAttribute to design your services to return strongly-typed SOAP faults (and not managed exception objects) for all fault cases in which you decide the client requires fault information. Toutefois, utilisez l'FaultException dans les situations suivantes :However, use the FaultException in the following situations:

  • Pour envoyer des erreurs SOAP d'un service à des fins de débogage.To send SOAP faults from a service for debugging purposes.

  • Pour intercepter des erreurs SOAP sur un client lorsque les erreurs ne font pas partie du contrat de service.To catch SOAP faults on a client when the faults are not part of the service contract.

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.Throw FaultException objects when you want the string to be passed to the constructor and retrieved by the client by calling the FaultException<TDetail>.ToString method. 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.If you specify a fault contract of type System.ServiceModel.FaultException<TDetail> where the type parameter is System.String, the string value is available as the FaultException<TDetail>.Detail property and not by calling FaultException<TDetail>.ToString.

Pour plus d’informations, consultez spécification et gestion des erreurs dans les contrats et les services.For details, see Specifying and Handling Faults in Contracts and Services.

Constructeurs

FaultException()

Initialise une nouvelle instance de la classe FaultException.Initializes a new instance of the FaultException class.

FaultException(FaultReason)

Initialise une nouvelle instance de la classe FaultException à l'aide de la raison spécifiée.Initializes a new instance of the FaultException class using the specified reason.

FaultException(FaultReason, FaultCode)

Initialise une nouvelle instance de la classe FaultException à l'aide de la raison et du code d'erreur spécifiés.Initializes a new instance of the FaultException class using the specified reason and fault code.

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.Initializes a new instance of the FaultException class using the specified reason, fault code, and action value.

FaultException(MessageFault)

Initialise une nouvelle instance de la classe FaultException à l'aide des valeurs d'erreur du message spécifiées.Initializes a new instance of the FaultException class using the specified message fault values.

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.Initializes a new instance of the FaultException class using the specified message fault values and the provided action string.

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.Initializes a new instance of the FaultException class using the specified serialization information and context when deserializing a stream into a FaultException object.

FaultException(String)

Initialise une nouvelle instance de la classe FaultException avec la raison de l'erreur spécifiée.Initializes a new instance of the FaultException class with the specified fault reason.

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.Initializes a new instance of the FaultException class using the specified reason and SOAP fault code.

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.Initializes a new instance of the FaultException class using the specified reason, fault code, and action value.

Propriétés

Action

Obtient la valeur de l'action SOAP pour le message d'erreur.Gets the value of the SOAP action for the fault message.

Code

Obtient le code d'erreur pour l'erreur SOAP.Gets the fault code for the SOAP fault.

Data

Obtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l’utilisateur sur l’exception.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Hérité de Exception)
HelpLink

Obtient ou définit un lien vers le fichier d'aide associé à cette exception.Gets or sets a link to the help file associated with this exception.

(Hérité de Exception)
HResult

Obtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Hérité de Exception)
InnerException

Obtient l'instance Exception qui a provoqué l'exception actuelle.Gets the Exception instance that caused the current exception.

(Hérité de Exception)
Message

Obtient le message pour l'exception.Gets the message for the exception.

Reason

Obtient la FaultReason de l'erreur SOAP.Gets the FaultReason for the SOAP fault.

Source

Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur.Gets or sets the name of the application or the object that causes the error.

(Hérité de Exception)
StackTrace

Obtient une représentation sous forme de chaîne des frames immédiats sur la pile des appels.Gets a string representation of the immediate frames on the call stack.

(Hérité de Exception)
TargetSite

Obtient la méthode qui lève l'exception actuelle.Gets the method that throws the current exception.

(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.Returns a FaultException object from the specified message fault, action and an array of detail types.

CreateFault(MessageFault, Type[])

Retourne un objet FaultException de l'erreur de message spécifiée et un tableau de types de détails.Returns a FaultException object from the specified message fault and an array of detail types.

CreateMessageFault()

Retourne un objet MessageFault.Returns a MessageFault object.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(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.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Hérité de Exception)
GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(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.Implementation of the GetObjectData(SerializationInfo, StreamingContext) method that is called when the object is serialized into a stream.

GetType()

Obtient le type au moment de l'exécution de l'instance actuelle.Gets the runtime type of the current instance.

(Hérité de Exception)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
ToString()

Crée et retourne une chaîne représentant l'exception actuelle.Creates and returns a string representation of the current exception.

(Hérité de Exception)

Événements

SerializeObjectState

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.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Hérité de Exception)

S’applique à