FaultException クラス

定義

SOAP エラーを表します。Represents a SOAP fault.

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
[System.Serializable]
public class FaultException : System.ServiceModel.CommunicationException
type FaultException = class
    inherit CommunicationException
Public Class FaultException
Inherits CommunicationException
継承
継承
派生
属性

次のコード例は、サービスからスローされた FaultException オブジェクトをキャッチして処理する try/catch ブロックの使用方法を示しています。The following code example shows the use of a try/catch block to catch and handle FaultException objects thrown from a service. これは、サービス アプリケーションでデバッグがオンの場合にしばしば使用される方法です。This often occurs when debugging is turned on in the service application.

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

注釈

サービスでは、FaultException クラスを使用して、デバッグ用にクライアントに返す型指定のないエラーを作成します。In a service, use the FaultException class to create an untyped fault to return to the client for debugging purposes.

クライアントでは、FaultException オブジェクトをキャッチして、IncludeExceptionDetailInFaults プロパティを true に設定してサービスから返された不明なエラーや一般的なエラーを処理します。In a client, catch FaultException objects to handle unknown or generic faults, such as those returned by a service with the IncludeExceptionDetailInFaults property set to true. FaultExceptionCommunicationException を拡張するため、別々にキャッチする場合は、FaultException オブジェクトをキャッチする前に CommunicationException オブジェクトをキャッチしてください。Because FaultException extends CommunicationException, remember to catch any FaultException objects prior to catching CommunicationException objects if you want to catch them separately.

注意

双方向サービスでも、双方向クライアントとの対話で返される FaultException オブジェクトをキャッチできます。Duplex services can also catch FaultException objects returned from their interaction with a duplex client.

通常は、FaultContractAttribute を使用して、クライアントにエラー情報が必要であると判断されるすべてのエラー ケースに対して (マネージド例外オブジェクトではなく) 厳密に型指定された SOAP エラーを返すサービスを設計することを強くお勧めします。In general, it is strongly recommended that you use the FaultContractAttribute to design your services to return strongly-typed SOAP faults (and not managed exception objects) for all fault cases in which you decide the client requires fault information. ただし、次の状況の場合は、FaultException を使用します。However, use the FaultException in the following situations:

  • デバッグ用にサービスから SOAP エラーを送信する。To send SOAP faults from a service for debugging purposes.

  • エラーがサービスコントラクトの一部ではない場合に、クライアント上で SOAP エラーをキャッチする。To catch SOAP faults on a client when the faults are not part of the service contract.

文字列をコンストラクターに渡し、クライアントが FaultException メソッドを呼び出すことでその文字列を取得する場合は、FaultException<TDetail>.ToString オブジェクトをスローします。Throw FaultException objects when you want the string to be passed to the constructor and retrieved by the client by calling the FaultException<TDetail>.ToString method. 型パラメーターが System.ServiceModel.FaultException<TDetail> である System.String 型のエラー コントラクトを指定した場合、文字列値は FaultException<TDetail>.Detail を呼び出さなくても FaultException<TDetail>.ToString プロパティとして取得できます。If you specify a fault contract of type System.ServiceModel.FaultException<TDetail> where the type parameter is System.String, the string value is available as the FaultException<TDetail>.Detail property and not by calling FaultException<TDetail>.ToString.

詳細については、「コントラクトとサービスのエラーの指定と処理」を参照してください。For details, see Specifying and Handling Faults in Contracts and Services.

コンストラクター

FaultException()

FaultException クラスの新しいインスタンスを初期化します。Initializes a new instance of the FaultException class.

FaultException(FaultReason)

指定した理由を使用して、FaultException クラスの新しいインスタンスを初期化します。Initializes a new instance of the FaultException class using the specified reason.

FaultException(FaultReason, FaultCode)

指定した理由とエラー コードを使用して、FaultException クラスの新しいインスタンスを初期化します。Initializes a new instance of the FaultException class using the specified reason and fault code.

FaultException(FaultReason, FaultCode, String)

指定した理由、エラー コード、およびアクション値を使用して、FaultException クラスの新しいインスタンスを初期化します。Initializes a new instance of the FaultException class using the specified reason, fault code, and action value.

FaultException(MessageFault)

指定したメッセージ エラーの値を使用して、FaultException クラスの新しいインスタンスを初期化します。Initializes a new instance of the FaultException class using the specified message fault values.

FaultException(MessageFault, String)

指定したメッセージ エラーの値と用意されたアクション文字列を使用して、FaultException クラスの新しいインスタンスを初期化します。Initializes a new instance of the FaultException class using the specified message fault values and the provided action string.

FaultException(SerializationInfo, StreamingContext)

ストリームを FaultException オブジェクトに逆シリアル化するときに、指定したシリアル化情報とコンテキストを使用して、FaultException クラスの新しいインスタンスを初期化します。Initializes a new instance of the FaultException class using the specified serialization information and context when deserializing a stream into a FaultException object.

FaultException(String)

指定されたエラー理由を使用して、FaultException クラスの新しいインスタンスを初期化します。Initializes a new instance of the FaultException class with the specified fault reason.

FaultException(String, FaultCode)

指定した理由と SOAP エラー コードを使用して、FaultException クラスの新しいインスタンスを初期化します。Initializes a new instance of the FaultException class using the specified reason and SOAP fault code.

FaultException(String, FaultCode, String)

指定した理由、エラー コード、およびアクション値を使用して、FaultException クラスの新しいインスタンスを初期化します。Initializes a new instance of the FaultException class using the specified reason, fault code, and action value.

プロパティ

Action

エラー メッセージの SOAP アクションの値を取得します。Gets the value of the SOAP action for the fault message.

Code

SOAP エラーのエラー コードを取得します。Gets the fault code for the SOAP fault.

Data

例外に関する追加のユーザー定義情報を提供する、キーと値のペアのコレクションを取得します。Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(継承元 Exception)
HelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。Gets or sets a link to the help file associated with this exception.

(継承元 Exception)
HResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(継承元 Exception)
InnerException

現在の例外の原因となる Exception インスタンスを取得します。Gets the Exception instance that caused the current exception.

(継承元 Exception)
Message

例外メッセージを取得します。Gets the message for the exception.

Reason

SOAP エラーの FaultReason を取得します。Gets the FaultReason for the SOAP fault.

Source

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。Gets or sets the name of the application or the object that causes the error.

(継承元 Exception)
StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。Gets a string representation of the immediate frames on the call stack.

(継承元 Exception)
TargetSite

現在の例外がスローされたメソッドを取得します。Gets the method that throws the current exception.

(継承元 Exception)

メソッド

CreateFault(MessageFault, String, Type[])

指定したメッセージ エラー、アクション、および詳細な型の配列から FaultException オブジェクトを返します。Returns a FaultException object from the specified message fault, action and an array of detail types.

CreateFault(MessageFault, Type[])

指定したメッセージ エラーと詳細な型の配列から FaultException オブジェクトを返します。Returns a FaultException object from the specified message fault and an array of detail types.

CreateMessageFault()

MessageFault オブジェクトを返します。Returns a MessageFault object.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の根本原因である Exception を返します。When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(継承元 Exception)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)

オブジェクトがストリームにシリアル化されるときに呼び出される GetObjectData(SerializationInfo, StreamingContext) メソッドの実装です。Implementation of the GetObjectData(SerializationInfo, StreamingContext) method that is called when the object is serialized into a stream.

GetObjectData(SerializationInfo, StreamingContext)

派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。When overridden in a derived class, sets the SerializationInfo with information about the exception.

(継承元 Exception)
GetType()

現在のインスタンスのランタイム型を取得します。Gets the runtime type of the current instance.

(継承元 Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在の例外の文字列形式を作成して返します。Creates and returns a string representation of the current exception.

(継承元 Exception)

イベント

SerializeObjectState

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(継承元 Exception)

適用対象