Chyby
Chyba v jazyce vzorců Power Query M značí, že proces vyhodnocení výrazu nemůže vytvořit hodnotu. Chyby jsou vyvolány operátory a funkcemi, u kterých dochází k chybám , nebo pomocí výrazu chyby . Chyby se zpracovávají pomocí výrazu try . Při vyvolání chyby je zadána hodnota, která se dá použít k označení, proč k chybě došlo.
Výraz Try
Výraz try převede hodnoty a chyby na hodnotu záznamu, která označuje, jestli výraz try zpracoval chybu, nebo ne, a buď správnou hodnotu, nebo záznam chyby extrahovaný při zpracování chyby. Představte si například následující výraz, který vyvolá chybu, a pak ji okamžitě zpracuje:
try error "negative unit count"
Tento výraz se vyhodnotí jako následující vnořená hodnota záznamu, která [HasError], [Error]
vysvětluje vyhledávání polí [Message]
v příkladu jednotkové ceny dříve.
Záznam chyby
[
HasError = true,
Error =
[
Reason = "Expression.Error",
Message = "negative unit count",
Detail = null
]
]
Běžným případem je nahrazení chyb výchozími hodnotami. Výraz try lze použít s volitelnou klauzulí otherwise k dosažení pouze toho v kompaktní podobě:
try error "negative unit count" otherwise 42
// equals 42
Příklad chyby
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
Předchozí příklad přistupuje k Sales[UnitPrice]
poli a formátuje hodnotu, která vytvoří výsledek:
"Unit Price: 2"
Pokud by pole Jednotky bylo nula, pole UnitPrice
by vyvolalo chybu, která by byla zpracována pokusem. Výsledná hodnota by pak byla:
"No Units"