OpenBI Docs Buy

Error.Record

Makes the record an error carries, ready to raise with error: a reason, a message and details.

Group: Values, types and errors. Power Query M has it too: a query that uses it is written as in Power BI.

Syntax

Error.Record(reason as text, optional message as nullable text, optional detail as any, optional parameters as nullable list) as record
ParameterTypeDescription
reasontextThe kind of error, such as "Order.Error"; it is what try shows as Reason.
messagenullable text
optional
The text a person reads; #{0}, #{1} … stand for the parameters.
detailany
optional
Anything that helps: a record of the values involved, for instance.
parametersnullable list
optional
Values for #{0}, #{1} … in the message.

Returns

record. Reason, Message and Detail; with parameters also Message.Format (the message as written) and Message.Parameters.

Remarks

  • error followed by the record raises it; try gives it back under Error, and try … otherwise replaces it with a value.

Examples

An error record with details

Error.Record("Order.Error", "Order 1042 has no lines.", [Order = 1042])
[Reason = "Order.Error", Message = "Order 1042 has no lines.", Detail = [Order = 1042]]

A message with parameters

Error.Record("Order.Error", "Order #{0} has #{1} lines.", null, {1042, 0})
[Reason = "Order.Error", Message = "Order 1042 has 0 lines.", Detail = null, Message.Format = "Order #{0} has #{1} lines.", Message.Parameters = {1042, 0}]

Raise it in a check, catch it later

let
    Check = (qty) => if qty < 0 then error Error.Record("Order.Error", "A quantity can't be negative.", [Quantity = qty]) else qty
in
    (try Check(-2))[Error][Message]
"A quantity can't be negative."

Value.Is, Table.ReplaceErrorValues, Table.RemoveRowsWithErrors.

Last updated · OpenBI Studio 0.3.79