Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ошибка языка формул 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"