Partilhar via


FaultException Classe

Definição

Representa uma falha 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
Herança
Herança
Derivado
Atributos

Exemplos

O exemplo de código a seguir mostra o uso de um bloco try/catch para capturar e manipular FaultException objetos gerados de um serviço. Isso geralmente ocorre quando a depuração é ativada no aplicativo de serviço.

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

Comentários

Em um serviço, use a FaultException classe para criar uma falha não tipada para retornar ao cliente para fins de depuração.

Em um cliente, capture FaultException objetos para lidar com falhas desconhecidas ou genéricas, como aquelas retornadas por um serviço com a IncludeExceptionDetailInFaults propriedade definida como true. Como FaultException se estende CommunicationException, lembre-se de capturar objetos FaultException antes de capturar CommunicationException objetos se você quiser capturá-los separadamente.

Observação

Os serviços duplex também podem capturar FaultException objetos retornados de sua interação com um cliente duplex.

Em geral, é altamente recomendável que você use o FaultContractAttribute para projetar seus serviços para retornar falhas SOAP fortemente tipadas (e não objetos de exceção gerenciados) para todos os casos de falha nos quais você decide que o cliente requer informações de falha. No entanto, use as FaultException seguintes situações:

  • Para enviar falhas SOAP de um serviço para fins de depuração.

  • Para detectar falhas SOAP em um cliente quando as falhas não fazem parte do contrato de serviço.

Lance FaultException objetos quando quiser que a cadeia de caracteres seja passada para o construtor e recuperada pelo cliente chamando o FaultException<TDetail>.ToString método. Se você especificar um contrato de falha do tipo System.ServiceModel.FaultException<TDetail> em que o parâmetro de tipo está System.String, o valor da cadeia de caracteres estará disponível como propriedade FaultException<TDetail>.Detail e não chamando FaultException<TDetail>.ToString.

Para obter detalhes, consulte Especificando e tratando falhas em contratos e serviços.

Construtores

FaultException()

Inicializa uma nova instância da classe FaultException.

FaultException(FaultReason)

Inicializa uma nova instância da classe FaultException usando o motivo especificado.

FaultException(FaultReason, FaultCode)

Inicializa uma nova instância da classe FaultException usando o motivo e o código de falha especificados.

FaultException(FaultReason, FaultCode, String)

Inicializa uma nova instância da classe FaultException usando o motivo especificado, código de falha e valor da ação.

FaultException(MessageFault)

Inicializa uma nova instância da classe FaultException usando os valores de falha de mensagem especificados.

FaultException(MessageFault, String)

Inicializa uma nova instância da classe FaultException usando os valores de falha de mensagem especificados e a cadeia de caracteres de ação fornecida.

FaultException(SerializationInfo, StreamingContext)

Inicializa uma nova instância da classe FaultException, usando as informações de serialização e de contexto especificadas ao desserializar um fluxo em um objeto FaultException.

FaultException(String)

Inicializa uma nova instância da classe FaultException com o motivo da falha especificado.

FaultException(String, FaultCode)

Inicializa uma nova instância da classe FaultException usando o motivo e o código de falha SOAP especificados.

FaultException(String, FaultCode, String)

Inicializa uma nova instância da classe FaultException usando o motivo especificado, código de falha e valor da ação.

Propriedades

Action

Obtém o valor da ação de SOAP para a mensagem com falha.

Code

Obtém o código com falha para a falha de SOAP.

Data

Obtém uma coleção de pares de chave/valor que fornecem informações definidas pelo usuário adicionais sobre a exceção.

(Herdado de Exception)
HelpLink

Obtém ou define um link para o arquivo de ajuda associado a essa exceção.

(Herdado de Exception)
HResult

Obtém ou define HRESULT, um valor numérico codificado que é atribuído a uma exceção específica.

(Herdado de Exception)
InnerException

Obtém a instância Exception que causou a exceção atual.

(Herdado de Exception)
Message

Obtém a mensagem para a exceção.

Reason

Obtém o FaultReason para a falha de SOAP.

Source

Obtém ou define o nome do aplicativo ou objeto que causa o erro.

(Herdado de Exception)
StackTrace

Obtém uma representação de cadeia de caracteres de quadros imediatos na pilha de chamadas.

(Herdado de Exception)
TargetSite

Obtém o método que gerou a exceção atual.

(Herdado de Exception)

Métodos

CreateFault(MessageFault, String, Type[])

Retorna um objeto FaultException da falha de mensagem e ação especificadas e uma matriz de tipos de detalhes.

CreateFault(MessageFault, Type[])

Retorna um objeto FaultException da falha de mensagem especificada e uma matriz de tipos de detalhes.

CreateMessageFault()

Retorna um objeto MessageFault.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetBaseException()

Quando substituído em uma classe derivada, retorna a Exception que é a causa raiz de uma ou mais exceções subsequentes.

(Herdado de Exception)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetObjectData(SerializationInfo, StreamingContext)

Implementação do método GetObjectData(SerializationInfo, StreamingContext) que é chamado quando o objeto é serializado em um fluxo.

GetObjectData(SerializationInfo, StreamingContext)

Quando substituído em uma classe derivada, define o SerializationInfo com informações sobre a exceção.

(Herdado de Exception)
GetType()

Obtém o tipo de runtime da instância atual.

(Herdado de Exception)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Cria e retorna uma representação de cadeia de caracteres da exceção atual.

(Herdado de Exception)

Eventos

SerializeObjectState
Obsoleto.

Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção.

(Herdado de Exception)

Aplica-se a