ошибки
Ошибка языка формул Power Query M — это указание на то, что процесс оценки выражения не мог создать значение. Ошибки возникают операторами и функциями, которые сталкиваются с условиями ошибки или с помощью выражения ошибки . Ошибки обрабатываются с помощью выражения try . При возникновении ошибки указывается значение, которое можно использовать для указания причины возникновения ошибки.
Выражение try преобразует значения и ошибки в значение записи, указывающее, обрабатывает ли выражение пробы ошибку или нет, а также правильное значение или запись ошибки, извлекаемой при обработке ошибки. Например, рассмотрим следующее выражение, которое вызывает ошибку, а затем обрабатывает его сразу:
try error "negative unit count"
Это выражение вычисляет следующее вложенное значение записи, объясняя [HasError], [Error]
подстановки полей [Message]
в примере с единицей.
[
HasError = true,
Error =
[
Reason = "Expression.Error",
Message = "negative unit count",
Detail = null
]
]
Распространенным случаем является замена ошибок значениями по умолчанию. Выражение try можно использовать с необязательным предложением в противном случае, чтобы достичь этого в компактной форме:
try error "negative unit count" otherwise 42
// equals 42
let Sales =
[
ProductName = "Fishing rod",
Revenue = 2000,
Units = 1000,
UnitPrice = if Units = 0 then error "No Units"
else Revenue / Units
],
//Get UnitPrice from Sales record
textUnitPrice = try Number.ToText(Sales[UnitPrice]),
Label = "Unit Price: " &
(if textUnitPrice[HasError] then textUnitPrice[Error][Message]
//Continue expression flow
else textUnitPrice[Value])
in
Label
Приведенный выше пример обращается к полю Sales[UnitPrice]
и форматирует значение, выдавая следующий результат:
"Unit Price: 2"
Если поле "Единицы" было равно нулю, то UnitPrice
поле вызвало бы ошибку, которая была бы обработана попыткой. После этого результирующее значение было бы следующим:
"No Units"