assert()

Schakelen tussen services met behulp van de vervolgkeuzelijst Versie . Meer informatie over navigatie.
Van toepassing op: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Controleert op een voorwaarde. Als de voorwaarde onwaar is, worden foutberichten uitgevoerd en mislukt de query.

Opmerking

De assert functie wordt geëvalueerd tijdens de queryanalysefase, voordat optimalisaties zoals constant vouwen en predicaat kortsluiting worden toegepast.

Opmerking

De parameters die moeten assert worden gegeven, moeten worden geëvalueerd op constanten tijdens de queryanalysefase. Met andere woorden, het kan worden samengesteld uit andere expressies die alleen verwijzen naar constanten en kan niet worden gebonden aan rijcontext.

Syntaxis

assert( Voorwaarde,Bericht)

Meer informatie over syntaxisconventies.

Parameterwaarden

Naam Typologie Verplicht Description
voorwaarde bool ✔️ De voorwaardelijke expressie die moet worden geëvalueerd. De voorwaarde moet worden geëvalueerd om constant te zijn tijdens de fase van de queryanalyse.
bericht string ✔️ Het bericht dat wordt gebruikt als assertie wordt geëvalueerd false.

Retouren

Retourneert true als de voorwaarde is true. Hiermee wordt een semantische fout gegenereerd als de voorwaarde wordt geëvalueerd false.

Voorbeelden

De volgende query definieert een functie checkLength() die de lengte van de invoertekenreeks controleert en gebruikt assert om de invoerlengteparameter te valideren (controleert of deze groter is dan nul).

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)

Het uitvoeren van deze query resulteert in een fout: assert() has failed with message: 'Length must be greater than zero'

Voorbeeld van het uitvoeren met geldige len invoer:

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)

Uitvoer

invoer
4567

De volgende query mislukt altijd en geeft aan dat de assert functie wordt geëvalueerd, ook al retourneert de where b operator geen gegevens wanneerb:false

let b=false;
print x="Hello"
| where b
| where assert(b, "Assertion failed")