FaultException Klass

Definition

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)

Gäller för