Sdílet prostřednictvím


FaultException Třída

Definice

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 ze služby. K tomu často dochází při zapnutí ladění v aplikaci služby.

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ě pomocí FaultException třídy vytvořte netypovou chybu, která se vrátí klientovi pro účely ladění.

V klientovi zachyťte FaultException objekty pro zpracování neznámých nebo obecných chyb, jako jsou například ty vrácené službou s vlastností nastavenou IncludeExceptionDetailInFaults na true. Vzhledem k tomu FaultException , že rozšíření CommunicationException, 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 navrhnout FaultContractAttribute služby tak, aby vracely chyby SOAP se silnými typy (a ne spravované 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 FaultException však následující situace:

  • Odesílání chyb PROTOKOLU SOAP ze služby pro účely ladění

  • Chcete-li zachytit chyby SOAP na klientovi, pokud chyby nejsou součástí kontraktu služby.

Vyvolá 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 je System.Stringparametr typu , řetězcová hodnota je 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

Name Description
FaultException()

Inicializuje novou instanci FaultException třídy.

FaultException(FaultReason, FaultCode, String)

Inicializuje novou instanci FaultException třídy pomocí zadaného důvodu, kódu chyby a hodnoty akce.

FaultException(FaultReason, FaultCode)

Inicializuje novou instanci FaultException třídy pomocí zadaného důvodu a kódu chyby.

FaultException(FaultReason)

Inicializuje novou instanci FaultException třídy pomocí zadaného důvodu.

FaultException(MessageFault, String)

Inicializuje novou instanci FaultException třídy pomocí zadaných chybových hodnot zprávy a zadaného řetězce akce.

FaultException(MessageFault)

Inicializuje novou instanci FaultException třídy pomocí zadaných chybových hodnot zprávy.

FaultException(SerializationInfo, StreamingContext)

Inicializuje novou instanci FaultException třídy pomocí zadaných serializačních informací a kontextu při deserializaci datového proudu do objektu FaultException .

FaultException(String, FaultCode, String)

Inicializuje novou instanci FaultException třídy pomocí zadaného důvodu, kódu chyby a hodnoty akce.

FaultException(String, FaultCode)

Inicializuje novou instanci FaultException třídy pomocí zadaného důvodu a kódu chyby SOAP.

FaultException(String)

Inicializuje novou instanci FaultException třídy se zadaným důvodem chyby.

Vlastnosti

Name Description
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 pro výjimku.

Reason

FaultReason Získá 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ězcové znázornění 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

Name Description
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í objekt MessageFault.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetBaseException()

Při přepsání v odvozené třídě vrátí Exception to, že je původní příčinou jedné nebo více následných výjimek.

(Zděděno od Exception)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetObjectData(SerializationInfo, StreamingContext)

GetObjectData(SerializationInfo, StreamingContext) Implementace metody, která je volána při serializaci objektu do datového proudu.

GetType()

Získá typ modulu runtime aktuální instance.

(Zděděno od Exception)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vytvoří a vrátí řetězcovou reprezentaci aktuální výjimky.

(Zděděno od Exception)

Událost

Name Description
SerializeObjectState
Zastaralé.

Nastane, když je výjimka serializována vytvořit objekt stavu výjimky, který obsahuje serializovaná data o výjimce.

(Zděděno od Exception)

Platí pro