CommunicationException Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um erro de comunicação no aplicativo de serviço ou cliente.
public ref class CommunicationException : Exception
public ref class CommunicationException : SystemException
public class CommunicationException : Exception
[System.Serializable]
public class CommunicationException : SystemException
type CommunicationException = class
inherit Exception
[<System.Serializable>]
type CommunicationException = class
inherit SystemException
Public Class CommunicationException
Inherits Exception
Public Class CommunicationException
Inherits SystemException
- Herança
- Herança
- Derivado
- Atributos
Exemplos
O exemplo de código a seguir mostra um cliente que manipula tipos CommunicationException . Esse cliente também manipula FaultException objetos porque o serviço foi IncludeExceptionDetailInFaults definido como true
.
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
Aplicativos WCF (Client and Service Windows Communication Foundation) robustos manipulam CommunicationException objetos que podem ser lançados durante a comunicação. Também há dois CommunicationExceptiontipos de exceção derivados (FaultException<TDetail> e FaultException) que os clientes também costumam esperar. Portanto, para impedir que o manipulador genérico CommunicationException capture esses tipos de exceção mais específicos, capture essas exceções antes de manipular CommunicationException.
- FaultException<TDetail> os objetos são lançados no cliente quando uma falha SOAP especificada no contrato de operação é recebida em resposta a uma operação bidirecional (ou seja, um método com um OperationContractAttribute atributo com IsOneWay definido como
false
).
FaultException os objetos são gerados quando um ouvinte recebe uma falha SOAP que não é esperada ou especificada no contrato de operação. Isso geralmente ocorre quando o aplicativo está sendo depurado e o serviço tem a IncludeExceptionDetailInFaults propriedade definida como true
.
Observação
Ao implementar canais personalizados e elementos de associação, é altamente recomendável que seus componentes lancem somente System.TimeoutException ou CommunicationExceptionobjetos derivados. No caso em que seus componentes geram uma exceção recuperável específica ao componente, encapsule essa exceção dentro de um CommunicationException objeto.
Para obter mais detalhes sobre como criar e usar o sistema de falhas do WCF, consulte Especificando e tratando falhas em contratos e serviços.
Importante
O Runtime do WCF não lançará um CommunicationException que não seja seguro para lidar no ponto em que ele sai do Runtime do WCF e insere o código do usuário.
Construtores
CommunicationException() |
Inicializa uma nova instância da classe CommunicationException. |
CommunicationException(SerializationInfo, StreamingContext) |
Inicializa uma nova instância da classe CommunicationException, usando as informações de serialização e objetos de contexto especificados. |
CommunicationException(String) |
Inicializa uma nova instância da classe CommunicationException usando a mensagem especificada. |
CommunicationException(String, Exception) |
Inicializa uma nova instância da classe CommunicationException usando a mensagem especificada e a exceção interna. |
Propriedades
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 uma mensagem que descreve a exceção atual. (Herdado de Exception) |
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
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) |
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) |