try

try<T>(delegate: () -> T): TryResult<T>

デリゲート関数を評価し、デリゲート関数が成功した場合は ​success: true​ と ​result​ を含むオブジェクトを返し、デリゲート関数が例外をスローした場合は ​success: false​ と ​error​ を含むオブジェクトを返します。

try​ 関数が失敗しても、​orElseTry​ 関数と ​orElse​ 関数は処理を継続します。失敗した ​try​ 関数式の処理の詳細な例は、​orElseTry​ と ​orElse​ のドキュメントを参照してください。

注意: orElseTry​ 関数と ​orElse​ 関数を使用する代わりに、​try​ 関数の出力に基づいて、結果が ​success: true​ または ​success: false​ の場合に実行する条件ロジックを追加できます。

パラメーター

名前 説明

delegate

評価する関数。

次の例では、​randomNumber​ 関数を引数として使用し、​try​ 関数をコールしています。 関数 ​randomNumber​ は乱数を生成し、数値が 0.5 より大きい場合は ​fail​ をコールします。この関数の宣言はスクリプトのヘッダーにあります。

ソース

%dw 2.0
import try, fail from dw::Runtime
output application/json
fun randomNumber() =
if(random() > 0.5)
  fail("This function is failing")
 else
  "OK"
---
try(() -> randomNumber())

出力

randomNumber​ が失敗すると、出力は次のようになります。

{
  "success": false,
  "error": {
    "kind": "UserException",
    "message": "This function is failing",
    "location": "Unknown location",
    "stack": [
      "fail (anonymous:0:0)",
      "myFunction (anonymous:1:114)",
      "main (anonymous:1:179)"
    ]
  }
}

randomNumber​ が成功すると、出力は次のようになります。

{
  "success": true,
  "result": "OK"
}