FaultException Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje chybu 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
- Dědičnost
- Dědičnost
- Odvozené
- Atributy
Příklady
Následující příklad kódu ukazuje použití bloku try/catch k zachycení a zpracování FaultException objektů vyvolaných službou. K tomu často dochází, když je v aplikaci služby zapnuté ladění.
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
Poznámky
Ve službě použijte FaultException třídu k vytvoření netypové chyby, která se vrátí klientovi pro účely ladění.
V klientovi zachytávání FaultException objektů pro zpracování neznámých nebo obecných chyb, například těch, které vrací služba, s vlastností nastavenou IncludeExceptionDetailInFaults na true
. Vzhledem k tomu FaultException , že CommunicationExceptionrozšiřuje , nezapomeňte zachytit všechny FaultException objekty před zachycením CommunicationException objektů, pokud je chcete zachytit samostatně.
Poznámka
Duplexní služby mohou také zachytit FaultException objekty vrácené z jejich interakce s duplexním klientem.
Obecně se důrazně doporučuje použít k návrhu FaultContractAttribute služeb, aby vracely chyby soap silného typu (a nespravované objekty výjimek) pro všechny případy selhání, ve kterých se rozhodnete, že klient vyžaduje informace o chybách. Použijte ho FaultException ale v následujících situacích:
Odesílání chyb PROTOKOLU SOAP ze služby pro účely ladění
Zachytávání chyb PROTOKOLU SOAP na klientovi, když nejsou součástí servisní smlouvy.
Vyvolejte FaultException objekty, pokud chcete, aby byl řetězec předán konstruktoru a načten klient voláním FaultException<TDetail>.ToString metody . Pokud zadáte kontrakt chyby typu System.ServiceModel.FaultException<TDetail> , kde parametr typu je System.String, bude řetězcová hodnota k dispozici jako FaultException<TDetail>.Detail vlastnost, a ne voláním FaultException<TDetail>.ToString.
Podrobnosti najdete v tématu Určení a zpracování chyb v kontraktech a službách.
Konstruktory
FaultException() |
Inicializuje novou instanci FaultException třídy. |
FaultException(FaultReason) |
Inicializuje novou instanci FaultException třídy pomocí zadaného důvodu. |
FaultException(FaultReason, FaultCode) |
Inicializuje novou instanci FaultException třídy pomocí zadaného důvodu a kódu chyby. |
FaultException(FaultReason, FaultCode, String) |
Inicializuje novou instanci FaultException třídy pomocí zadaného důvodu, kódu chyby a hodnoty akce. |
FaultException(MessageFault) |
Inicializuje novou instanci FaultException třídy pomocí zadaných chybových hodnot zprávy. |
FaultException(MessageFault, String) |
Inicializuje novou instanci třídy pomocí zadaných FaultException chybových hodnot zprávy a zadaného řetězce akce. |
FaultException(SerializationInfo, StreamingContext) |
Inicializuje novou instanci FaultException třídy pomocí zadané serializace informace a kontextu při deserializaci streamu do objektu FaultException . |
FaultException(String) |
Inicializuje novou instanci FaultException třídy se zadaným důvodem chyby. |
FaultException(String, FaultCode) |
Inicializuje novou instanci FaultException třídy pomocí zadaného důvodu a kód chyby SOAP. |
FaultException(String, FaultCode, String) |
Inicializuje novou instanci FaultException třídy pomocí zadaného důvodu, kódu chyby a hodnoty akce. |
Vlastnosti
Action |
Získá hodnotu akce SOAP pro chybovou zprávu. |
Code |
Získá kód chyby pro chybu SOAP. |
Data |
Získá kolekci párů klíč/hodnota, které poskytují další uživatelem definované informace o výjimce. (Zděděno od Exception) |
HelpLink |
Získá nebo nastaví odkaz na soubor nápovědy přidružené k této výjimce. (Zděděno od Exception) |
HResult |
Získá nebo nastaví HRESULT, kódovanou číselnou hodnotu, která je přiřazena ke konkrétní výjimce. (Zděděno od Exception) |
InnerException |
Exception Získá instanci, která způsobila aktuální výjimku. (Zděděno od Exception) |
Message |
Získá zprávu o výjimce. |
Reason |
Získá pro FaultReason chybu SOAP. |
Source |
Získá nebo nastaví název aplikace nebo objektu, který způsobuje chybu. (Zděděno od Exception) |
StackTrace |
Získá řetězcovou reprezentaci okamžitých rámců v zásobníku volání. (Zděděno od Exception) |
TargetSite |
Získá metodu, která vyvolá aktuální výjimku. (Zděděno od Exception) |
Metody
CreateFault(MessageFault, String, Type[]) |
FaultException Vrátí objekt ze zadané chyby zprávy, akce a pole typů podrobností. |
CreateFault(MessageFault, Type[]) |
FaultException Vrátí objekt ze zadané chyby zprávy a pole typů podrobností. |
CreateMessageFault() |
Vrátí hodnotu MessageFault objektu. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetBaseException() |
Při přepsání v odvozené třídě vrátí Exception hodnotu, která je původní příčinou jedné nebo více následných výjimek. (Zděděno od Exception) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetObjectData(SerializationInfo, StreamingContext) |
GetObjectData(SerializationInfo, StreamingContext) Implementace metody, která je volána při serializaci objektu do streamu. |
GetObjectData(SerializationInfo, StreamingContext) |
Při přepsání v odvozené třídě nastaví SerializationInfo s informacemi o výjimce. (Zděděno od Exception) |
GetType() |
Získá typ modulu runtime aktuální instance. (Zděděno od Exception) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vytvoří a vrátí řetězcovou reprezentaci aktuální výjimky. (Zděděno od Exception) |
Událost
SerializeObjectState |
Zastaralé.
Nastane, když je výjimka serializována k vytvoření objektu stavu výjimky, který obsahuje serializovaná data o výjimce. (Zděděno od Exception) |