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 seguinte mostra a utilização de um bloco try/catch para apanhar e tratar FaultException objetos lançados de um serviço. Isto ocorre frequentemente quando a depuração está ativada na aplicação 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

Observações

Num serviço, use a FaultException classe para criar uma falha não tipada que devesse ao cliente para efeitos de depuração.

Num cliente, capturar FaultException objetos para tratar falhas desconhecidas ou genéricas, como as devolvidas por um serviço com a IncludeExceptionDetailInFaults propriedade definida como true. Porque FaultException se estende CommunicationException, lembra-te de apanhar quaisquer FaultException objetos antes de os apanhar CommunicationException se quiseres apanhá-los separadamente.

Note

Os serviços duplex também podem detetar FaultException objetos devolvidos da sua interação com um cliente duplex.

Em geral, é fortemente recomendado que utilize o FaultContractAttribute para desenhar os seus serviços de forma a devolver falhas SOAP fortemente tipadas (e não objetos de exceção geridos) para todos os casos de falha em que decidir que o cliente requer informação de falha. No entanto, use o FaultException nas seguintes situações:

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

  • Detetar falhas SOAP num cliente quando as falhas não fazem parte do contrato de serviço.

Lança FaultException objetos quando quiseres que a string seja passada ao construtor e recuperada pelo cliente ao chamar o FaultException<TDetail>.ToString método. Se especificar um contrato de falha do tipo System.ServiceModel.FaultException<TDetail> onde o parâmetro de tipo é System.String, o valor da cadeia está disponível como propriedade FaultException<TDetail>.Detail e não chamando FaultException<TDetail>.ToString.

Para mais detalhes, consulte Especificação e Gestão de Falhas em Contratos e Serviços.

Construtores

Name Description
FaultException()

Inicializa uma nova instância da FaultException classe.

FaultException(FaultReason, FaultCode, String)

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

FaultException(FaultReason, FaultCode)

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

FaultException(FaultReason)

Inicializa uma nova instância da FaultException classe usando a razão especificada.

FaultException(MessageFault, String)

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

FaultException(MessageFault)

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

FaultException(SerializationInfo, StreamingContext)

Inicializa uma nova instância da FaultException classe usando a informação e o contexto de serialização especificados ao desserializar um fluxo num FaultException objeto.

FaultException(String, FaultCode, String)

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

FaultException(String, FaultCode)

Inicializa uma nova instância da FaultException classe usando a razão especificada e o código de falha SOAP.

FaultException(String)

Inicializa uma nova instância da FaultException classe com a razão de falha especificada.

Propriedades

Name Description
Action

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

Code

Obtém o código de falha do SOAP.

Data

Obtém uma coleção de pares chave/valor que fornecem informação adicional definida pelo utilizador sobre a exceção.

(Herdado de Exception)
HelpLink

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

(Herdado de Exception)
HResult

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

(Herdado de Exception)
InnerException

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

(Herdado de Exception)
Message

Percebe a mensagem da exceção.

Reason

Recebe o FaultReason problema da falha SOAP.

Source

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

(Herdado de Exception)
StackTrace

Obtém uma representação string dos frames imediatos na stack de chamadas.

(Herdado de Exception)
TargetSite

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

(Herdado de Exception)

Métodos

Name Description
CreateFault(MessageFault, String, Type[])

Devolve um FaultException objeto a partir da mensagem especificada, falha, ação e um conjunto de tipos de detalhe.

CreateFault(MessageFault, Type[])

Devolve um FaultException objeto a partir da falha de mensagem especificada e de um array de tipos de detalhe.

CreateMessageFault()

Devolve um MessageFault objeto.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetBaseException()

Quando sobrescrito numa classe derivada, devolve o Exception que é a causa raiz de uma ou mais exceções subsequentes.

(Herdado de Exception)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetObjectData(SerializationInfo, StreamingContext)

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

GetType()

Obtém o tipo de execução da instância atual.

(Herdado de Exception)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Cria e devolve uma representação string da exceção atual.

(Herdado de Exception)

evento

Name Description
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