FaultException Klasa

Definicja

Reprezentuje usterkę protokołu 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
Dziedziczenie
Dziedziczenie
Pochodne
Atrybuty

Przykłady

Poniższy przykład kodu przedstawia użycie bloku try/catch do przechwytywania i obsługi FaultException obiektów zgłaszanych z usługi. Dzieje się tak często, gdy debugowanie jest włączone w aplikacji usługi.

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

Uwagi

W usłudze użyj FaultException klasy , aby utworzyć nietypowy błąd, aby powrócić do klienta na potrzeby debugowania.

W kliencie przechwytują FaultException obiekty do obsługi nieznanych lub ogólnych błędów, takich jak te zwrócone przez usługę z właściwością IncludeExceptionDetailInFaults ustawioną na true. Ponieważ FaultException rozszerza CommunicationExceptionobiekt , pamiętaj, aby przechwycić wszystkie FaultException obiekty przed przechwyceniem CommunicationException obiektów, jeśli chcesz je przechwycić oddzielnie.

Uwaga

Usługi dwukierunkowe mogą również przechwytywać FaultException obiekty zwracane z interakcji z klientem dwukierunkowym.

Ogólnie rzecz biorąc, zdecydowanie zaleca się użycie elementu FaultContractAttribute do projektowania usług w celu zwrócenia silnie typionych błędów protokołu SOAP (a nie zarządzanych obiektów wyjątków) dla wszystkich przypadków błędów, w których decydujesz, że klient wymaga informacji o błędach. Należy jednak użyć wartości FaultException w następujących sytuacjach:

  • Aby wysłać błędy protokołu SOAP z usługi do celów debugowania.

  • Aby złapać błędy protokołu SOAP na kliencie, gdy błędy nie są częścią kontraktu usługi.

Zgłaszaj FaultException obiekty, gdy chcesz przekazać ciąg do konstruktora i pobrać go przez klienta przez wywołanie FaultException<TDetail>.ToString metody . Jeśli określisz kontrakt błędów typu System.ServiceModel.FaultException<TDetail> , w którym parametr typu to System.String, wartość ciągu jest dostępna jako FaultException<TDetail>.Detail właściwość, a nie przez wywołanie metody FaultException<TDetail>.ToString.

Aby uzyskać szczegółowe informacje, zobacz Określanie i obsługa błędów w kontraktach i usługach.

Konstruktory

FaultException()

Inicjuje nowe wystąpienie klasy FaultException.

FaultException(FaultReason)

Inicjuje FaultException nowe wystąpienie klasy przy użyciu określonej przyczyny.

FaultException(FaultReason, FaultCode)

Inicjuje FaultException nowe wystąpienie klasy przy użyciu określonego powodu i kodu błędu.

FaultException(FaultReason, FaultCode, String)

Inicjuje FaultException nowe wystąpienie klasy przy użyciu określonej przyczyny, kodu błędu i wartości akcji.

FaultException(MessageFault)

Inicjuje FaultException nowe wystąpienie klasy przy użyciu określonych wartości błędów komunikatu.

FaultException(MessageFault, String)

Inicjuje FaultException nowe wystąpienie klasy przy użyciu określonych wartości błędów komunikatu i podanego ciągu akcji.

FaultException(SerializationInfo, StreamingContext)

Inicjuje FaultException nowe wystąpienie klasy przy użyciu określonych informacji o serializacji i kontekstu podczas deserializacji strumienia FaultException do obiektu.

FaultException(String)

Inicjuje FaultException nowe wystąpienie klasy z określoną przyczyną błędu.

FaultException(String, FaultCode)

Inicjuje nowe wystąpienie klasy przy użyciu określonego FaultException powodu i kodu błędu PROTOKOŁU SOAP.

FaultException(String, FaultCode, String)

Inicjuje FaultException nowe wystąpienie klasy przy użyciu określonej przyczyny, kodu błędu i wartości akcji.

Właściwości

Action

Pobiera wartość akcji SOAP dla komunikatu o błędzie.

Code

Pobiera kod błędu dla błędu PROTOKOŁU SOAP.

Data

Pobiera kolekcję par klucz/wartość, które zapewniają dodatkowe informacje zdefiniowane przez użytkownika dotyczące wyjątku.

(Odziedziczone po Exception)
HelpLink

Pobiera lub ustawia link do pliku pomocy skojarzonego z tym wyjątkiem.

(Odziedziczone po Exception)
HResult

Pobiera lub ustawia HRESULT, zakodowaną wartość liczbową przypisaną do określonego wyjątku.

(Odziedziczone po Exception)
InnerException

Exception Pobiera wystąpienie, które spowodowało bieżący wyjątek.

(Odziedziczone po Exception)
Message

Pobiera komunikat dla wyjątku.

Reason

FaultReason Pobiera błąd protokołu SOAP.

Source

Pobiera lub ustawia nazwę aplikacji lub obiektu, który powoduje błąd.

(Odziedziczone po Exception)
StackTrace

Pobiera reprezentację ciągu natychmiastowych ramek w stosie wywołań.

(Odziedziczone po Exception)
TargetSite

Pobiera metodę, która zgłasza bieżący wyjątek.

(Odziedziczone po Exception)

Metody

CreateFault(MessageFault, String, Type[])

FaultException Zwraca obiekt z określonego błędu komunikatu, akcji i tablicy typów szczegółów.

CreateFault(MessageFault, Type[])

FaultException Zwraca obiekt z określonej błędu komunikatu i tablicę typów szczegółów.

CreateMessageFault()

Zwraca MessageFault obiektu.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetBaseException()

W przypadku zastąpienia w klasie pochodnej zwraca Exception główną przyczynę co najmniej jednego kolejnego wyjątku.

(Odziedziczone po Exception)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetObjectData(SerializationInfo, StreamingContext)

Implementacja GetObjectData(SerializationInfo, StreamingContext) metody wywoływanej podczas serializacji obiektu do strumienia.

GetObjectData(SerializationInfo, StreamingContext)

Po przesłonięciu w klasie pochodnej ustawia SerializationInfo wartość z informacjami o wyjątku.

(Odziedziczone po Exception)
GetType()

Pobiera typ środowiska uruchomieniowego bieżącego wystąpienia.

(Odziedziczone po Exception)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Tworzy i zwraca reprezentację ciągu bieżącego wyjątku.

(Odziedziczone po Exception)

Zdarzenia

SerializeObjectState
Przestarzałe.

Występuje, gdy wyjątek jest serializowany w celu utworzenia obiektu stanu wyjątku zawierającego serializowane dane o wyjątku.

(Odziedziczone po Exception)

Dotyczy