Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une erreur dans le langage de formule Power Query M indique que le processus d’évaluation d’une expression n’a pas pu produire de valeur. Les erreurs sont générées par les opérateurs et les fonctions qui rencontrent des conditions d’erreur ou à l’aide de l’expression d’erreur . Les erreurs sont gérées à l’aide de l’expression try . Lorsqu’une erreur est générée, une valeur est spécifiée qui peut être utilisée pour indiquer pourquoi l’erreur s’est produite.
Essayer l’expression
Une expression try convertit les valeurs et les erreurs en valeur d’enregistrement qui indique si l’expression try a géré une erreur, ou non, et la valeur appropriée ou l’enregistrement d’erreur qu’il a extrait lors de la gestion de l’erreur. Par exemple, considérez l’expression suivante qui déclenche une erreur, puis la gère immédiatement :
try error "negative unit count"
Cette expression correspond à la valeur d’enregistrement imbriquée suivante, expliquant les recherches sur le champ et [Message] les [HasError], [Error]recherches dans l’exemple de prix unitaire avant.
Enregistrement d’erreur
[
HasError = true,
Error =
[
Reason = "Expression.Error",
Message = "negative unit count",
Detail = null
]
]
Un cas courant consiste à remplacer les erreurs par des valeurs par défaut. L’expression try peut être utilisée avec une clause facultative pour obtenir uniquement cela sous forme compacte :
try error "negative unit count" otherwise 42
// equals 42
Exemple d’erreur
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
L’exemple précédent accède au Sales[UnitPrice] champ et met en forme la valeur produisant le résultat :
"Unit Price: 2"
Si le champ Unités avait été égal à zéro, le UnitPrice champ aurait déclenché une erreur qui aurait été gérée par la tentative. La valeur résultante aurait alors été :
"No Units"