スロー アクションは、 トライ/キャッチ アクションの部分で使用されます (下のスクリーンショット参照)。このアクションは XPath 式を評価します。評価の結果がからのシーケンスではない場合、例外がスローされ、例外は トライ/キャッチ アクションの変数に保管されます。下のスクリーンショットでは、この変数は $Not-USA-Warning という名前を持ちます。
上のスクリーンショットで表示されている通り、デバイスの位置情報が米国でない場合、例外がスローされます。Xpath 式:
if ($MT_GEOLOCATION/Root/Address/@CountryName != 'USA')
then (concat( 'Warning: デバイスの位置情報が米国でない場合: ', $MT_GEOLOCATION/Root/Address/@CountryName))
else ()
この式は以下のように動作します
•if 句が $MT_GEOLOCATION/Root/Address/@CountryName ノードの値が'USA'であるか(否か)をチェックします。
•then 句は、国名が USA でない場合処理されます。この句は文字列を生成します。
•else 句は、国名が USA である場合、処理されます。これは空のシーケンスを生成します。
位置情報の国が USA でない場合、条件は true になり、式は then 句により生成された文字列を評価します。この結果は空のシーケンスではないため、例外がスローされ、生成された文字列が トライ/キャッチ 変数 $Not-USA-Warning 内に保管されます。
この文字列はメッセージボックス に表示されます (上のスクリーンショット参照)。位置情報の国が USA の場合、条件は false になり、 (else 句により生成された)式は空のシーケンスを評価します。結果が空のシーケンスのため、例外はスローされません。ですから、 トライ/キャッチ アクションのキャッチ 部分は実行されません。
メモ: | シーケンスが文字列アイテム ('') を含む場合、シーケンスは空ではありません。 |
チュートリアル 位置情報の共有 はトライ/キャッチ と スロー アクションの使用法について説明しています。