Mule 4和Dataweave:在dw::Runtime中使用fail()时如何省略stacktrace

Mule 4和Dataweave:在dw::Runtime中使用fail()时如何省略stacktrace,mule,mule-studio,dataweave,mule-esb,Mule,Mule Studio,Dataweave,Mule Esb,我有一个DataWeave消息转换器,比如说: %dw 2.0 import fail from dw::Runtime output application/java fun isValuePresent(value, message: String) = if ( value == null or isEmpty(value) ) fail(message) else value --- { brand: isValuePresent(payload.document[0].bran

我有一个DataWeave消息转换器,比如说:

%dw 2.0
import fail from dw::Runtime
output application/java
fun isValuePresent(value, message: String) = if ( value == null or isEmpty(value) ) fail(message) else value
---
{
    brand: isValuePresent(payload.document[0].brand, p('import.error.missing.brand')),
    ...
我也有一个针对此类错误的错误处理程序

Mule中的错误有其属性,如:
说明
详细说明

现在,正常情况下,当我捕捉到其他错误时(例如来自
is true
组件的错误)-一切正常,
error.description
保存我的错误消息,一切正常

但是当产生由
fail()
产生的错误时,我会收到一条非常大的错误描述消息:

""my error message here
Trace:
  at fail (Unknown)
  at isValuePresent (line: 13, column: 85)
  at main (line: 23, column: 7)" evaluating expression: "%dw 2.0
import fail from dw::Runtime
output application/java
fun isValuePresent(value, message: String) = if ( value == null or isEmpty(value) ) fail(message) else value
---
{
    brand: isValuePresent(payload.document[0].brand, p('import.error.missing.brand')),
    ...
    ...
    etc, etc
看起来我的dataweave脚本的全部内容都添加到了跟踪中。我只想:

my error message here
Trace:
  at fail (Unknown)
  at isValuePresent (line: 13, column: 85)
  at main (line: 23, column: 7)" evaluating expression: "%dw 2.0

有可能做到这一点吗?或者我在设计这种行为时犯了一些错误?有办法解决这个问题吗?

我想你对此无能为力。这是fail()报告错误的方式,不可自定义。可能这取决于DataWeave本身报告错误的方式,而不是失败()本身。

请包含DataWeave脚本好吗?谢谢