スロー

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  アクション > If、Loop、Let、トライ/キャッチ、スロー >

スロー

スロー アクションは、 トライ/キャッチ アクションの部分で使用されます (下のスクリーンショット参照)。このアクションは XPath 式を評価します。評価の結果がからのシーケンスではない場合、例外がスローされ、例外は トライ/キャッチ アクションの変数に保管されます。下のスクリーンショットでは、この変数は $Not-USA-Warning という名前を持ちます。

MTDThrow

上のスクリーンショットで表示されている通り、デバイスの位置情報が米国でない場合、例外がスローされます。 XPath 式は、以下の通りです:

 

if ($MT_GEOLOCATION/Root/Address/@CountryName != 'USA'

then (concat'Warning: Device location is outside the US: '$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 句により生成された)式は空のシーケンスを評価します。結果が空のシーケンスのため、例外はスローされません。ですから、 トライ/キャッチ アクションのキャッチ 部分は実行されません。

 

メモ:シーケンスが文字列アイテム ('') を含む場合、シーケンスは空ではありません

 

チュートリアル 位置情報の共有トライ/キャッチ スロー アクションの使用法について説明しています。

 


(C) 2019 Altova GmbH