エラー処理オプションは、エラーがある場合に、トランザクションの終了時にエラーをどのように処理するかを設定するオプションです。エラー処理オプションは、Transaction.Commit()または Transaction.RollBack()を呼び出す前であれば、Transaction.SetFailureHandlingOptions()メソッドを使用していつでも設定することができます。ただし、トランザクションがコミットされるかロールバックされると、オプションはそれぞれの既定の設定に戻ります。
SetFailureHandlingOptions()メソッドは FailureHandlingOptions オブジェクトをパラメータとして取ります。このオブジェクトは作成することができず、GetFailureHandlingOptions()メソッドを使用してトランザクションから取得する必要があります。オプションは、SetClearAfterRollback()などの対応する Set メソッドを呼び出して設定します。次のセクションでは、エラー処理のオプションの詳細について説明します。
このオプションは、トランザクションのロールバック後にすべての警告を消去するかどうかをコントロールします。既定値は False です。
このオプションは、簡単な警告がある場合に、現在終了しようとしているトランザクションの終了時に表示するか、次のトランザクションの終了まで後回しにするかをコントロールします。通常これは、複数のトランザクションが続くときに、各手順の修了時に中間の警告を表示するのは望ましくないので、全体が終了するまで待つ場合に使用します。
警告は複数のトランザクションの後に表示される場合があります。このオプションが True に設定されていない最初のトランザクションのときに、警告があれば、自身のすべての警告と、以前のトランザクションから累積している警告が表示されます。既定値は False です。
このオプションは、最終的なエラーをモーダルとモードレスのいずれで処理するかをコントロールします。既定は True です。モードレスのエラー処理が設定されている場合は、トランザクションの処理が非同期に行われることがあることに注意してください。つまり、Commit や RollBack 呼び出しから戻り値があったときに、トランザクションはまだ終わっていません(ステータスは「保留中」になります)。
このオプションが設定されていると、トランザクションの修了時にエラーが検出された場合に、このインタフェースが呼び出されます。プロセッサが現在のエラーを検証し、解決しようとすることがあります。詳細は、「ポストおよび処理エラー」を参照してください。
このオプションが設定されていると、ファイナライザがインタフェースとなり、トランザクションの終了時にカスタムの操作を実行するのに使用できます。Commit()や RollBack()メソッドの呼び出し時に呼び出されるのではなく、コミットやロールバックの処理が終わった後にのみ呼び出されることに注意してください。トランザクション ファイナライザは ITransactionFinalizer インタフェースを実装する必要があります。このインタフェースには次の 2 つの関数を定義する必要があります。