assert()
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
Verifica la presenza di una condizione. Se la condizione è false, restituisce i messaggi di errore e non riesce la query.
Nota
La assert
funzione viene valutata durante la fase di analisi delle query, prima che vengano applicate ottimizzazioni come la riduzione costante e il corto circuito del predicato.
Nota
I parametri assegnati a assert
devono essere valutati in costanti durante la fase di analisi delle query. In altre parole, può essere costruito solo da altre espressioni che fanno riferimento a costanti e non può essere associato al contesto di riga.
Sintassi
assert(
messaggio condizione,
)
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
condition | bool |
✔️ | Espressione condizionale da valutare. La condizione deve essere valutata come costante durante la fase di analisi della query. |
message | string |
✔️ | Messaggio utilizzato se l'asserzione viene valutata su false . |
Valori restituiti
Restituisce true
se la condizione è true
.
Genera un errore semantico se la condizione viene valutata su false
.
Esempi
La query seguente definisce una funzione checkLength()
che controlla la lunghezza della stringa di input e usa assert
per convalidare il parametro di lunghezza di input (verifica che sia maggiore di zero).
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)
L'esecuzione di questa query genera un errore: assert() has failed with message: 'Length must be greater than zero'
Esempio di esecuzione con input valido len
:
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)
Output
input |
---|
4567 |
La query seguente avrà sempre esito negativo, dimostrando che la assert
funzione viene valutata anche se l'operatore where b
non restituisce dati quando b
è false
:
let b=false;
print x="Hello"
| where b
| where assert(b, "Assertion failed")