<faulthandlers>
構文
<scope>
<throw fault='"MyFault"'/>
...
<faulthandlers>
<catch fault='"MyFault"'>
...
</catch>
<catch fault='"OtherFault"'>
...
</catch>
<catchall>
...
</catchall>
</faulthandlers>
</scope>
詳細
属性または要素 | 説明 |
---|---|
name、disabled、xpos、ypos、xend、yend 属性 | “一般的な属性と要素” を参照してください。 |
<catch> 要素 | <faulthandlers> 内にはゼロ個以上の <catch> 要素を配置できます。それぞれ、<throw> 要素によって生成された特定のフォールトをキャッチします。 |
<catchall> 要素 | <catch> に合致しないフォールトやシステム・エラーをキャッチします。<faulthandlers> 内に <catch> 要素がない場合は、<catchall> を含める必要があります。それ以外の場合、<catchall> はオプションです。 |
説明
エラー処理に対応するため、BPL には <scope> と呼ばれる要素があります。スコープは一連のアクティビティのラッパです。このスコープには、1 つ以上のアクティビティ、1 つ以上のフォールト・ハンドラ、ゼロ個以上の補償ハンドラを含めることができます。<faulthandlers> 要素の目的は、<scope> 内のアクティビティが生成するエラーをキャッチすることです。<faulthandlers> 内の <catch> 要素と <catchall> 要素では、<compensate> 文を使用して、キャッチしたエラーを補償する <compensationhandler> 要素を呼び出すことができます。
<scope> 内に <faulthandlers> ブロックがない場合は、システム・エラーがイベント・ログに自動的に出力されます。<scope> に <faulthandlers> ブロックが含まれている場合は、<trace> メッセージをイベント・ログに出力し、システム・エラー・メッセージがイベント・ログに表示されるようにする必要があります。いずれの場合も、システム・エラー・メッセージがターミナル・コンソールに表示されます。
詳細は、"BPL プロセスの開発" の “BPL のエラー処理” を参照してください。
<compensationhandlers> と <faulthandlers> の順序を逆にすることはできません。これら両方のブロックを記述する場合は、最初に <compensationhandlers>、次に <faulthandlers> を配置する必要があります。
関連項目
<catch>、<catchall>、<compensate>、<compensationhandlers>、<scope>、<throw>