Errors
Um erro na linguagem de fórmulas do Power Query M é uma indicação de que o processo de avaliação de uma expressão não pôde produzir um valor. Os erros são gerados por operadores e funções que encontraram condições de erros ou usaram a expressão de erro. Os erros são tratados usando a expressão try. Quando um erro é gerado, é especificado um valor que pode ser usado para indicar por que o erro ocorreu.
Uma expressão try converte valores e erros em um valor de registro que indica se a expressão try tratou um erro ou não, bem como o valor apropriado ou o registro de erro que ela extraiu ao tratar o erro. Por exemplo, considere a seguinte expressão que gera um erro e o trata imediatamente:
try error "negative unit count"
Essa expressão avalia o seguinte valor de registro aninhado, explicando as pesquisas de campo [HasError], [Error]
e [Message]
no exemplo de preço unitário antes.
[
HasError = true,
Error =
[
Reason = "Expression.Error",
Message = "negative unit count",
Detail = null
]
]
Um caso comum é substituir erros por valores padrão. A expressão try também pode ser usada com uma cláusula opcional para obter apenas isso em um formato compacto:
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
O exemplo acima acessa o campo Sales[UnitPrice]
e formata o valor, produzindo o seguinte resultado:
"Unit Price: 2"
Se o campo "Unidades" tivesse sido zero, o campo UnitPrice
teria gerado um erro que teria sido tratado pela expressão try. O valor resultante teria sido:
"No Units"