FaultException Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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) |