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
| Parameter | Type | Description |
|---|---|---|
reason | text | The kind of error, such as "Order.Error"; it is what try shows as Reason. |
message | nullable text optional | The text a person reads; #{0}, #{1} … stand for the parameters. |
detail | any optional | Anything that helps: a record of the values involved, for instance. |
parameters | nullable 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
errorfollowed by the record raises it;trygives it back under Error, andtry … otherwisereplaces 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."
Related functions
Value.Is, Table.ReplaceErrorValues, Table.RemoveRowsWithErrors.