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 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)

Platí pro