Contact Us 1-800-596-4880

orElseTry

orElseTry(TryResult<T>, () -> R): TryResult<T | R>

Function to be use with try in order to chain multiple try

Introduced in DataWeave 2.2.0. Supported by Mule 4.2 and later.

Parameters

Name Description

previous

Previous try result

orElse

The next option to try if the previous fails

Example

This example waits shows how to chain different try

Source

%dw 2.0
import * from dw::Runtime
var user = {}
var otherUser = {}
output application/json
---
{
    a: try(() -> user.name!) orElseTry otherUser.name!,
    b: try(() -> user.name!) orElseTry "No User Name"
}

Output

{
  "a": {
    "success": false,
    "error": {
      "kind": "KeyNotFoundException",
      "message": "There is no key named 'name'",
      "location": "\n9|     a: try(() -> user.name!) orElseTry otherUser.name!,\n                                          ^^^^^^^^^^^^^^",
      "stack": [
        "main (org::mule::weave::v2::engine::transform:9:40)"
      ]
    }
  },
  "b": {
    "success": true,
    "result": "No User Name"
  }
}