FaultException Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un error 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
- Herencia
- Herencia
- Derivado
- Atributos
Ejemplos
En el ejemplo de código siguiente se muestra el uso de un bloque try/catch para detectar y controlar FaultException objetos producidos desde un servicio. Esto suele ocurrir cuando la depuración está activada en la aplicación de servicio.
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
Comentarios
En un servicio, use la FaultException clase para crear un error sin tipo para volver al cliente con fines de depuración.
En un cliente, capture FaultException objetos para controlar errores desconocidos o genéricos, como los devueltos por un servicio con la IncludeExceptionDetailInFaults propiedad establecida en true. Dado que FaultException extiende CommunicationException, recuerde capturar los FaultException objetos antes de capturar objetos si desea capturarlos CommunicationException por separado.
Nota:
Los servicios dúplex también pueden detectar FaultException objetos devueltos de su interacción con un cliente dúplex.
En general, se recomienda encarecidamente usar FaultContractAttribute para diseñar los servicios para devolver errores SOAP fuertemente tipados (y no objetos de excepción administrados) para todos los casos de error en los que decida que el cliente requiere información de error. Sin embargo, use en FaultException las situaciones siguientes:
Para enviar errores SOAP desde un servicio con fines de depuración.
Para detectar errores soap en un cliente cuando los errores no forman parte del contrato de servicio.
Inicie FaultException objetos cuando quiera que la cadena se pase al constructor y la recupere el cliente llamando al FaultException<TDetail>.ToString método . Si especifica un contrato de error de tipo System.ServiceModel.FaultException<TDetail> donde el parámetro de tipo es System.String, el valor de cadena está disponible como la FaultException<TDetail>.Detail propiedad y no llamando a FaultException<TDetail>.ToString.
Para obtener más información, consulte Especificación y control de errores en contratos y servicios.
Constructores
| Nombre | Description |
|---|---|
| FaultException() |
Inicializa una nueva instancia de la clase FaultException. |
| FaultException(FaultReason, FaultCode, String) |
Inicializa una nueva instancia de la FaultException clase utilizando el motivo, el código de error y el valor de acción especificados. |
| FaultException(FaultReason, FaultCode) |
Inicializa una nueva instancia de la FaultException clase utilizando el motivo y el código de error especificados. |
| FaultException(FaultReason) |
Inicializa una nueva instancia de la FaultException clase utilizando el motivo especificado. |
| FaultException(MessageFault, String) |
Inicializa una nueva instancia de la FaultException clase utilizando los valores de error de mensaje especificados y la cadena de acción proporcionada. |
| FaultException(MessageFault) |
Inicializa una nueva instancia de la FaultException clase utilizando los valores de error de mensaje especificados. |
| FaultException(SerializationInfo, StreamingContext) |
Inicializa una nueva instancia de la FaultException clase utilizando la información de serialización y el contexto especificados al deserializar una secuencia en un FaultException objeto . |
| FaultException(String, FaultCode, String) |
Inicializa una nueva instancia de la FaultException clase utilizando el motivo, el código de error y el valor de acción especificados. |
| FaultException(String, FaultCode) |
Inicializa una nueva instancia de la FaultException clase utilizando el motivo especificado y el código de error de SOAP. |
| FaultException(String) |
Inicializa una nueva instancia de la FaultException clase con el motivo de error especificado. |
Propiedades
| Nombre | Description |
|---|---|
| Action |
Obtiene el valor de la acción SOAP para el mensaje de error. |
| Code |
Obtiene el código de error del error soap. |
| Data |
Obtiene una colección de pares clave-valor que proporcionan información adicional definida por el usuario sobre la excepción. (Heredado de Exception) |
| HelpLink |
Obtiene o establece un vínculo al archivo de ayuda asociado a esta excepción. (Heredado de Exception) |
| HResult |
Obtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica. (Heredado de Exception) |
| InnerException |
Obtiene la Exception instancia que provocó la excepción actual. (Heredado de Exception) |
| Message |
Obtiene el mensaje de la excepción. |
| Reason |
Obtiene para FaultReason el error soap. |
| Source |
Obtiene o establece el nombre de la aplicación o el objeto que provoca el error. (Heredado de Exception) |
| StackTrace |
Obtiene una representación de cadena de los fotogramas inmediatos en la pila de llamadas. (Heredado de Exception) |
| TargetSite |
Obtiene el método que produce la excepción actual. (Heredado de Exception) |
Métodos
| Nombre | Description |
|---|---|
| CreateFault(MessageFault, String, Type[]) |
Devuelve un FaultException objeto del error de mensaje, la acción y una matriz de tipos de detalle especificados. |
| CreateFault(MessageFault, Type[]) |
Devuelve un FaultException objeto del error de mensaje especificado y una matriz de tipos de detalle. |
| CreateMessageFault() |
Devuelve un objeto MessageFault. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetBaseException() |
Cuando se reemplaza en una clase derivada, devuelve la Exception causa principal de una o varias excepciones posteriores. (Heredado de Exception) |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Implementación del GetObjectData(SerializationInfo, StreamingContext) método al que se llama cuando el objeto se serializa en una secuencia. |
| GetType() |
Obtiene el tipo de tiempo de ejecución de la instancia actual. (Heredado de Exception) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Crea y devuelve una representación de cadena de la excepción actual. (Heredado de Exception) |
Eventos
| Nombre | Description |
|---|---|
| SerializeObjectState |
Obsoletos.
Se produce cuando se serializa una excepción para crear un objeto de estado de excepción que contiene datos serializados sobre la excepción. (Heredado de Exception) |