FaultException Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar ett SOAP-fel.
public ref class FaultException : System::ServiceModel::CommunicationException
public class FaultException : System.ServiceModel.CommunicationException
[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))]
[System.Serializable]
public class FaultException : System.ServiceModel.CommunicationException
type FaultException = class
inherit CommunicationException
[<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))>]
[<System.Serializable>]
type FaultException = class
inherit CommunicationException
Public Class FaultException
Inherits CommunicationException
- Arv
- Arv
- Härledda
- Attribut
Exempel
I följande kodexempel visas användningen av ett try/catch-block för att fånga och hantera FaultException objekt som genererats från en tjänst. Detta inträffar ofta när felsökning aktiveras i tjänstprogrammet.
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
Kommentarer
I en tjänst använder du FaultException klassen för att skapa ett otypat fel för att återgå till klienten i felsökningssyfte.
I en klient fångar du FaultException objekt för att hantera okända eller generiska fel, till exempel de som returneras av en tjänst med egenskapen inställd på IncludeExceptionDetailInFaultstrue. Eftersom FaultException utökar CommunicationException, kom ihåg att fånga alla FaultException objekt innan du fångar CommunicationException objekt om du vill fånga dem separat.
Note
Duplex-tjänster kan också fånga FaultException objekt som returneras från deras interaktion med en duplex-klient.
I allmänhet rekommenderar vi starkt att du använder FaultContractAttribute för att utforma dina tjänster för att returnera starkt skrivna SOAP-fel (och inte hanterade undantagsobjekt) för alla felfall där du bestämmer att klienten kräver felinformation. Använd FaultException dock i följande situationer:
Skicka SOAP-fel från en tjänst i felsökningssyfte.
Så här fångar du SOAP-fel på en klient när felen inte ingår i tjänstkontraktet.
Generera FaultException objekt när du vill att strängen ska skickas till konstruktorn och hämtas av klienten genom att anropa FaultException<TDetail>.ToString metoden. Om du anger ett felkontrakt av typen System.ServiceModel.FaultException<TDetail> där typparametern är System.Stringär strängvärdet tillgängligt som FaultException<TDetail>.Detail egenskapen och inte genom att anropa FaultException<TDetail>.ToString.
Mer information finns i Ange och hantera fel i kontrakt och tjänster.
Konstruktorer
| Name | Description |
|---|---|
| FaultException() |
Initierar en ny instans av FaultException klassen. |
| FaultException(FaultReason, FaultCode, String) |
Initierar en ny instans av FaultException klassen med angiven orsak, felkod och åtgärdsvärde. |
| FaultException(FaultReason, FaultCode) |
Initierar en ny instans av FaultException klassen med den angivna orsaks- och felkoden. |
| FaultException(FaultReason) |
Initierar en ny instans av FaultException klassen med den angivna orsaken. |
| FaultException(MessageFault, String) |
Initierar en ny instans av klassen med hjälp av FaultException de angivna felvärdena för meddelandet och den angivna åtgärdssträngen. |
| FaultException(MessageFault) |
Initierar en ny instans av klassen med hjälp av FaultException de angivna felvärdena för meddelandet. |
| FaultException(SerializationInfo, StreamingContext) |
Initierar en ny instans av FaultException klassen med den angivna serialiseringsinformationen och kontexten när en ström deserialiseras till ett FaultException objekt. |
| FaultException(String, FaultCode, String) |
Initierar en ny instans av FaultException klassen med angiven orsak, felkod och åtgärdsvärde. |
| FaultException(String, FaultCode) |
Initierar en ny instans av FaultException klassen med den angivna orsaken och SOAP-felkoden. |
| FaultException(String) |
Initierar en ny instans av FaultException klassen med den angivna felorsaken. |
Egenskaper
| Name | Description |
|---|---|
| Action |
Hämtar värdet för SOAP-åtgärden för felmeddelandet. |
| Code |
Hämtar felkoden för SOAP-felet. |
| Data |
Hämtar en samling nyckel/värde-par som ger ytterligare användardefinierad information om undantaget. (Ärvd från Exception) |
| HelpLink |
Hämtar eller anger en länk till hjälpfilen som är associerad med det här undantaget. (Ärvd från Exception) |
| HResult |
Hämtar eller anger HRESULT, ett kodat numeriskt värde som har tilldelats ett specifikt undantag. (Ärvd från Exception) |
| InnerException |
Hämtar den Exception instans som orsakade det aktuella undantaget. (Ärvd från Exception) |
| Message |
Hämtar meddelandet för undantaget. |
| Reason |
FaultReason Hämtar för SOAP-felet. |
| Source |
Hämtar eller anger namnet på programmet eller objektet som orsakar felet. (Ärvd från Exception) |
| StackTrace |
Hämtar en strängrepresentation av de omedelbara ramarna i anropsstacken. (Ärvd från Exception) |
| TargetSite |
Hämtar den metod som utlöser det aktuella undantaget. (Ärvd från Exception) |
Metoder
| Name | Description |
|---|---|
| CreateFault(MessageFault, String, Type[]) |
Returnerar ett FaultException objekt från det angivna meddelandefelet, åtgärden och en matris med informationstyper. |
| CreateFault(MessageFault, Type[]) |
Returnerar ett FaultException objekt från det angivna meddelandefelet och en matris med informationstyper. |
| CreateMessageFault() |
Returnerar ett MessageFault objekt. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetBaseException() |
När den åsidosätts i en härledd klass returnerar den Exception som är rotorsaken till ett eller flera efterföljande undantag. (Ärvd från Exception) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Implementering av metoden GetObjectData(SerializationInfo, StreamingContext) som anropas när objektet serialiseras till en dataström. |
| GetType() |
Hämtar körningstypen för den aktuella instansen. (Ärvd från Exception) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Skapar och returnerar en strängrepresentation av det aktuella undantaget. (Ärvd från Exception) |
Händelser
| Name | Description |
|---|---|
| SerializeObjectState |
Inträffar när ett undantag serialiseras för att skapa ett undantagstillståndsobjekt som innehåller serialiserade data om undantaget. (Ärvd från Exception) |