FaultException FaultException FaultException FaultException Class

定義

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

public ref 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
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
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() FaultException() FaultException()

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

FaultException(FaultReason) FaultException(FaultReason) FaultException(FaultReason) FaultException(FaultReason)

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

FaultException(FaultReason, FaultCode) FaultException(FaultReason, FaultCode) FaultException(FaultReason, FaultCode) FaultException(FaultReason, FaultCode)

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

FaultException(FaultReason, FaultCode, String) FaultException(FaultReason, FaultCode, String) FaultException(FaultReason, FaultCode, String) 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(MessageFault) FaultException(MessageFault) FaultException(MessageFault)

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

FaultException(MessageFault, String) FaultException(MessageFault, String) FaultException(MessageFault, String) 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(SerializationInfo, StreamingContext) FaultException(SerializationInfo, StreamingContext) 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(String) FaultException(String) FaultException(String)

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

FaultException(String, FaultCode) FaultException(String, FaultCode) FaultException(String, FaultCode) 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(String, FaultCode, String) FaultException(String, FaultCode, String) FaultException(String, FaultCode, String)

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

プロパティ

Action Action Action Action

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

Code Code Code Code

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

Data Data Data Data

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

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

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

(Inherited from Exception)
HResult HResult HResult HResult

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

(Inherited from Exception)
InnerException InnerException InnerException InnerException

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

(Inherited from Exception)
Message Message Message Message

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

Reason Reason Reason Reason

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

Source Source Source Source

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

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

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

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

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

(Inherited from Exception)

メソッド

CreateFault(MessageFault, String, Type[]) CreateFault(MessageFault, String, Type[]) CreateFault(MessageFault, String, Type[]) CreateFault(MessageFault, String, Type[])

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

CreateFault(MessageFault, Type[]) CreateFault(MessageFault, Type[]) CreateFault(MessageFault, Type[]) CreateFault(MessageFault, Type[])

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

CreateMessageFault() CreateMessageFault() CreateMessageFault() CreateMessageFault()

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

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

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

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

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

GetType() GetType() GetType() GetType()

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

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToString() ToString() ToString() ToString()

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

(Inherited from Exception)

イベント

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

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

(Inherited from Exception)

適用対象