assert()
Kontroluje podmínku. Pokud je podmínka false, zobrazí se chybové zprávy a dotaz se nezdaří.
Poznámka
Funkce assert
se vyhodnocuje během fáze analýzy dotazu, než se použijí optimalizace, jako je skládání konstant a zkratování predikátů.
Poznámka
Parametry zadané do assert
musí být vyhodnoceny jako konstanty během fáze analýzy dotazu. Jinými slovy, může být vytvořen z jiných výrazů odkazujících pouze na konstanty a nemůže být vázán na kontext řádku.
Syntax
assert(
Podmínka,
Zprávu)
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
Podmínka | bool |
✔️ | Podmíněný výraz, který se má vyhodnotit. Podmínku je potřeba vyhodnotit jako konstantní během fáze analýzy dotazu. |
message | string |
✔️ | Zpráva použitá při vyhodnocení kontrolního výrazu jako false . |
Návraty
Vrátí hodnotu true
, pokud je true
podmínka .
Vyvolá sémantickou chybu, pokud se podmínka vyhodnotí jako false
.
Příklady
Následující dotaz definuje funkci checkLength()
, která kontroluje délku vstupního řetězce a používá assert
k ověření parametru vstupní délky (kontroluje, jestli je větší než nula).
let checkLength = (len:long, s:string)
{
assert(len > 0, "Length must be greater than zero") and
strlen(s) > len
};
datatable(input:string)
[
'123',
'4567'
]
| where checkLength(len=long(-1), input)
Spuštěním tohoto dotazu dojde k chybě: assert() has failed with message: 'Length must be greater than zero'
Příklad spuštění s platným len
vstupem:
let checkLength = (len:long, s:string)
{
assert(len > 0, "Length must be greater than zero") and strlen(s) > len
};
datatable(input:string)
[
'123',
'4567'
]
| where checkLength(len=3, input)
Výstup
vstup |
---|
4567 |
Následující dotaz vždy selže, což ukazuje, že assert
funkce se vyhodnocuje, i když where b
operátor nevrátí žádná data, když b
je false
:
let b=false;
print x="Hello"
| where b
| where assert(b, "Assertion failed")
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro