FaultException Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen SOAP-Fehler dar.
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
- Vererbung
- Vererbung
- Abgeleitet
- Attribute
Beispiele
Im folgenden Codebeispiel wird die Verwendung eines Try/Catch-Blocks zum Abfangen und Verarbeiten von FaultException-Objekten gezeigt, die von einem Dienst ausgelöst werden. Dies tritt oft auf, wenn Debugging in der Dienstanwendung aktiviert ist.
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
Hinweise
Verwenden Sie die FaultException-Klasse in einem Dienst, um einen nicht typisierten Fehler zu erstellen, der an den Client zu Debuggingzwecken zurückgegeben wird.
Erfassen Sie FaultException-Objekte in einem Client, um unbekannte oder generische Fehler zu verarbeiten, wie z. B. Fehler, die von einem Dienst zurückgegeben werden, dessen IncludeExceptionDetailInFaults-Eigenschaft auf true
festgelegt ist. Da FaultExceptionCommunicationException erweitert, sollten Sie daran denken, FaultException-Objekte vor CommunicationException-Objekten abzufangen, sofern Sie sie separat abfangen möchten.
Hinweis
Duplexdienste können auch FaultException-Objekte abfangen, die von ihrer Interaktion mit einem Duplexclient zurückgegeben werden.
In Allgemeinen wird dringend empfohlen, dass Sie FaultContractAttribute verwenden, um die Dienste so zu konzipieren, dass stark typisierte SOAP-Fehler (und keine verwalteten Ausnahmeobjekte) für alle Fehlerfälle zurückgegeben werden, in denen der Client Ihrer Entscheidung nach Fehlerinformationen benötigt. Sie sollten FaultException dennoch in folgenden Situationen verwenden:
wenn Sie SOAP-Fehler von einem Dienst zu Debuggingzwecken senden möchten
wenn Sie SOAP-Fehler auf einem Client abfangen möchten, sofern die Fehler nicht Teil des Dienstvertrags sind
Lösen Sie FaultException-Objekte aus, wenn die Zeichenfolgen an den Konstruktor übergeben und vom Client durch Aufruf der FaultException<TDetail>.ToString-Methode abgerufen werden sollen. Wenn Sie einen Fehlervertrag vom Typ System.ServiceModel.FaultException<TDetail> angeben, in dem der Typparameter System.String ist, ist der Zeichenfolgenwert als FaultException<TDetail>.Detail-Eigenschaft verfügbar und nicht durch Aufruf von FaultException<TDetail>.ToString.
Ausführliche Informationen finden Sie unter Angeben und Behandeln von Fehlern in Verträgen und Diensten.
Konstruktoren
FaultException() |
Initialisiert eine neue Instanz der FaultException-Klasse. |
FaultException(FaultReason) |
Initialisiert eine neue Instanz der FaultException-Klasse unter Verwendung des angegebenen Grunds. |
FaultException(FaultReason, FaultCode) |
Initialisiert eine neue Instanz der FaultException-Klasse unter Verwendung des angegebenen Grund- und Fehlercodes. |
FaultException(FaultReason, FaultCode, String) |
Initialisiert eine neue Instanz der FaultException-Klasse unter Verwendung des angegebenen Grunds, Fehlercodes und Aktionswerts. |
FaultException(MessageFault) |
Initialisiert eine neue Instanz der FaultException-Klasse mit den angegebenen Nachrichtenfehlerwerten. |
FaultException(MessageFault, String) |
Initialisiert eine neue Instanz der FaultException-Klasse mit den angegebenen Nachrichtenfehlerwerten und der bereitgestellten Aktionszeichenfolge. |
FaultException(SerializationInfo, StreamingContext) |
Initialisiert eine neue Instanz der FaultException-Klasse mit den angegebenen Serialisierungsinformationen und dem angegebenen Kontext, wenn ein Stream in ein FaultException-Objekt deserialisiert wird. |
FaultException(String) |
Initialisiert eine neue Instanz der FaultException-Klasse mit dem angegebenen Grund des Fehlers. |
FaultException(String, FaultCode) |
Initialisiert eine neue Instanz der FaultException-Klasse unter Verwendung des angegebenen Grund- und SOAP-Fehlercodes. |
FaultException(String, FaultCode, String) |
Initialisiert eine neue Instanz der FaultException-Klasse unter Verwendung des angegebenen Grunds, Fehlercodes und Aktionswerts. |
Eigenschaften
Action |
Ruft den Wert der SOAP-Aktion für die Fehlermeldung ab. |
Code |
Ruft den Fehlercode für den SOAP-Fehler ab. |
Data |
Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen. (Geerbt von Exception) |
HelpLink |
Ruft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest. (Geerbt von Exception) |
HResult |
Ruft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist. (Geerbt von Exception) |
InnerException |
Ruft die Exception-Instanz ab, die die aktuelle Ausnahme verursacht hat. (Geerbt von Exception) |
Message |
Ruft die Meldung für die Ausnahme ab. |
Reason |
Ruft FaultReason für den SOAP-Fehler ab. |
Source |
Gibt den Namen der Anwendung oder des Objekts zurück, die bzw. das den Fehler verursacht hat, oder legt diesen fest. (Geerbt von Exception) |
StackTrace |
Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab. (Geerbt von Exception) |
TargetSite |
Ruft die Methode ab, die die aktuelle Ausnahme auslöst. (Geerbt von Exception) |
Methoden
CreateFault(MessageFault, String, Type[]) |
Gibt ein FaultException-Objekt aus dem angegebenen Nachrichtenfehler, der Aktion und einem Array von Detailtypen zurück. |
CreateFault(MessageFault, Type[]) |
Gibt ein FaultException-Objekt aus dem angegebenen Nachrichtenfehler und einem Array von Detailtypen zurück. |
CreateMessageFault() |
Gibt ein MessageFault-Objekt zurück. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetBaseException() |
Gibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die Grundursache für eine oder mehrere nachfolgende Ausnahmen ist. (Geerbt von Exception) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Implementierung der GetObjectData(SerializationInfo, StreamingContext)-Methode, die aufgerufen wird, wenn das Objekt in einen Stream serialisiert wird. |
GetObjectData(SerializationInfo, StreamingContext) |
Legt beim Überschreiben in einer abgeleiteten Klasse die SerializationInfo mit Informationen über die Ausnahme fest. (Geerbt von Exception) |
GetType() |
Ruft den Laufzeittyp der aktuellen Instanz ab. (Geerbt von Exception) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Erstellt eine Zeichenfolgendarstellung der aktuellen Ausnahme und gibt diese zurück. (Geerbt von Exception) |
Ereignisse
SerializeObjectState |
Veraltet.
Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt mit serialisierten Daten über die Ausnahme zu erstellen. (Geerbt von Exception) |