assert()
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Comprueba una condición. Si la condición es false, genera mensajes de error y produce un error en la consulta.
Nota:
La assert
función se evalúa durante la fase de análisis de consultas, antes de que se apliquen optimizaciones como plegado constante y cortocircuito de predicado.
Nota:
Los parámetros proporcionados a assert
se deben evaluar como constantes durante la fase de análisis de consultas. En otras palabras, se puede construir a partir de otras expresiones que hacen referencia solo a constantes y no se pueden enlazar al contexto de fila.
Sintaxis
assert(
mensaje de condición,
)
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
condition | bool |
✔️ | Expresión condicional que se va a evaluar. La condición debe evaluarse para constante durante la fase de análisis de consultas. |
message | string |
✔️ | Mensaje usado si la aserción se evalúa como false . |
Devoluciones
Devuelve true
si la condición es true
.
Genera un error semántico si la condición se evalúa como false
.
Ejemplos
La consulta siguiente define una función checkLength()
que comprueba la longitud de la cadena de entrada y usa assert
para validar el parámetro de longitud de entrada (comprueba que es mayor que cero).
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)
Al ejecutar esta consulta se produce un error: assert() has failed with message: 'Length must be greater than zero'
Ejemplo de ejecución con entrada válida 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)
Salida
input |
---|
4567 |
Siempre se producirá un error en la consulta siguiente, lo que demuestra que la assert
función se evalúa aunque el where b
operador no devuelva datos cuando b
sea false
:
let b=false;
print x="Hello"
| where b
| where assert(b, "Assertion failed")