assert()
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Procura uma condição. Se a condição for falsa, gerará mensagens de erro e falhará na consulta.
Observação
A assert
função é avaliada durante a fase de análise de consulta, antes que otimizações como dobramento constante e curto-circuito de predicado sejam aplicadas.
Observação
Os parâmetros fornecidos assert
devem ser avaliados para constantes durante a fase de análise da consulta. Em outras palavras, ele pode ser construído a partir de outras expressões que fazem referência apenas a constantes e não pode ser associado ao contexto de linha.
Sintaxe
assert(
mensagem de condição,
)
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
condition | bool |
✔️ | A expressão condicional a ser avaliada. A condição deve ser avaliada como constante durante a fase de análise da consulta. |
message | string |
✔️ | A mensagem usada se a asserção for avaliada como false . |
Devoluções
Retorna true
se a condição for true
.
Gera um erro semântico se a condição for avaliada como false
.
Exemplos
A consulta a seguir define uma função checkLength()
que verifica o comprimento da cadeia de caracteres de entrada e usa assert
para validar o parâmetro de comprimento de entrada (verifica se ele é maior que 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)
A execução desta consulta gera um erro: assert() has failed with message: 'Length must be greater than zero'
Exemplo de execução com 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)
Saída
input |
---|
4567 |
A consulta a seguir sempre falhará, demonstrando que a função é avaliada assert
mesmo que o where b
operador não retorne dados quando b
é false
:
let b=false;
print x="Hello"
| where b
| where assert(b, "Assertion failed")