Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Um erro na linguagem de fórmulas Power Query M é uma indicação de que o processo de avaliação de uma expressão não poderia produzir um valor. Os erros são gerados por operadores e funções que encontram condições de erro ou pela utilização da expressão de erro . Os erros são tratados usando a expressão try . Quando um erro é gerado, um valor é especificado que pode ser usado para indicar por que o erro ocorreu.
Experimente a expressão
Uma expressão try converte valores e erros num valor de registo que indica se a expressão try tratou um erro ou não, e o valor correto ou o registo de erro que extraiu ao tratar o erro. Por exemplo, considere a seguinte expressão que gera um erro e, em seguida, manipula-o imediatamente:
try error "negative unit count"
Esta expressão avalia para o seguinte valor de registo aninhado, explicando as [HasError], [Error], e [Message] as pesquisas de campo no exemplo do preço unitário anterior.
Registo de erro
[
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 pode ser usada com uma cláusula opcional caso contrário para conseguir exatamente isso de forma compacta:
try error "negative unit count" otherwise 42
// equals 42
Exemplo de erro
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 anterior acede ao Sales[UnitPrice] campo e formata o valor que produz o resultado:
"Unit Price: 2"
Se o campo de Unidades tivesse sido zero, então o UnitPrice campo teria gerado um erro que teria sido resolvido pelo try. O valor resultante teria então sido:
"No Units"