Try スコープは、次の構造で定義します。
-
1 つのルート要素
<try> -
Try スコープが定義するエラー処理ルールに従って実行されるコンポーネントは、
try 要素の子要素として定義されます。1 つまたは複数のコンポーネントを定義できます。 -
1 つの
<error-handler> 要素で、スコープのすべてのエラー処理戦略を定義します。 -
エラーハンドラーでは、1 つまたは複数の
on-error-continue と on-error-propagate によってさまざまな戦略を定義します。いずれか 1 つは必須です。 -
一致するエラーが発生した時点で実行されるコンポーネントは、
on-error 要素の子要素として定義されます。1 つまたは複数のコンポーネントを定義できます。
<try>
<!-- COMPONENTS TO TRY TO USE -->
<error-handler>
<on-error-continue>
<!-- COMPONENTS TO USE IN CASE OF ERROR -->
</on-error-continue>
<on-error-propagate>
<!-- COMPONENTS TO USE IN CASE OF ERROR -->
</on-error-propagate>
</error-handler>
</try>
Try スコープ (on-error-*) の各エラー処理戦略は、条件に従って実行されます。この条件は、通常は現在のエラーと一致するエラー種別 (または複数種別のリスト) です。error.cause.message.contains("fatal") のように、自由に作成した式として条件を定義することもできます。
| 条件は順番に評価され、最初に一致した戦略のみが実行されます。 |
2 つのエラー処理戦略を定義した例を示します。それぞれがロガーコンポーネントを実行します。
<try>
<http:request config-ref="HTTP-config" method="GET" path="/" />
<error-handler>
<on-error-continue enableNotifications="true" logException="true" type="CONNECTIVITY">
<logger level="INFO" doc:name="Logger" message="Connectivity Error"/>
</on-error-continue>
<on-error-propagate enableNotifications="true" logException="true" doc:name="On Error Propagate" type="EXPRESSION">
<logger level="INFO" doc:name="Logger" message="Expression error" />
</on-error-propagate>
</error-handler>
</try>
Try のプロパティ
| プロパティ | Default (デフォルト) | 説明 |
|---|---|---|
|
INDIFFERENT |
スコープ内のアクションをトランザクションとして扱うかどうかを定義します。可能な値:
|
|
LOCAL |
使用するトランザクションの種別を定義します。可能な値:
|