try

DataWeave 2.2 は Mule 4.2 と互換性があり、Mule 4.2 にバンドルされています。 このバージョンの Mule は、拡張サポートが終了する 2023 年 5 月 2 日にその すべてのサポート​が終了しました。

このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。

標準サポートが適用されている最新バージョンの Mule 4 にアップグレード​することをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。

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

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

パラメーター

Name (名前) 説明

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"
}

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