Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ein Fehler in der Formelsprache Power Query M ist ein Hinweis darauf, dass der Prozess der Auswertung eines Ausdrucks keinen Wert erzeugen konnte. Fehler werden von Operatoren und Funktionen ausgelöst, die auf Fehlerbedingungen oder mithilfe des Fehlerausdrucks stoßen. Fehler werden mithilfe des Try-Ausdrucks behandelt. Wenn ein Fehler ausgelöst wird, wird ein Wert angegeben, der verwendet werden kann, um anzugeben, warum der Fehler aufgetreten ist.
Ausdruck testen
Ein Try-Ausdruck konvertiert Werte und Fehler in einen Datensatzwert, der angibt, ob der Try-Ausdruck einen Fehler behandelt hat, oder nicht, und entweder den richtigen Wert oder den Fehlerdatensatz, den er beim Behandeln des Fehlers extrahiert hat. Betrachten Sie beispielsweise den folgenden Ausdruck, der einen Fehler auslöst, und behandelt ihn dann sofort:
try error "negative unit count"
Dieser Ausdruck wertet den folgenden geschachtelten Datensatzwert aus, in dem die [HasError], [Error]Feldsuchvorgänge im Beispiel für Einzelpreise erläutert werden [Message] .
Fehlerdatensatz
[
HasError = true,
Error =
[
Reason = "Expression.Error",
Message = "negative unit count",
Detail = null
]
]
Ein gängiger Fall besteht darin, Fehler durch Standardwerte zu ersetzen. Der Try-Ausdruck kann mit einer optionalen andernfalls Klausel verwendet werden, um genau dies in einer kompakten Form zu erreichen:
try error "negative unit count" otherwise 42
// equals 42
Fehlerbeispiel
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
Im vorherigen Beispiel wird auf das Sales[UnitPrice] Feld zugegriffen und der Wert formatiert, der das Ergebnis erzeugt:
"Unit Price: 2"
Wenn das Feld "Einheiten" null gewesen wäre, hätte das UnitPrice Feld einen Fehler ausgelöst, der vom Versuch behandelt worden wäre. Der resultierende Wert wäre dann:
"No Units"