assert()
Sprawdza warunek. Jeśli warunek ma wartość false, zwraca komunikaty o błędach i kończy się niepowodzeniem zapytania.
Uwaga
Funkcja assert
jest oceniana w fazie analizy zapytań przed zastosowaniem optymalizacji, takich jak składanie stałe i predykat zwarcie.
Uwaga
Podane parametry assert
muszą być oceniane na stałe w fazie analizy zapytań. Innymi słowy, można ją skonstruować tylko z innych wyrażeń odwołujących się tylko do stałych i nie można jej powiązać z kontekstem wiersza.
Składnia
assert(
Warunek,
Komunikat)
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
Warunek | bool |
✔️ | Wyrażenie warunkowe do oceny. Warunek musi zostać obliczony na stałą w fazie analizy zapytań. |
message | string |
✔️ | Komunikat używany w przypadku oceny asercji na false wartość . |
Zwraca
Zwraca wartość true
, jeśli warunek to true
.
Zgłasza błąd semantyczny, jeśli warunek jest oceniany na false
wartość .
Przykłady
Poniższe zapytanie definiuje funkcję checkLength()
, która sprawdza długość ciągu wejściowego i używa assert
jej do sprawdzania poprawności parametru długości danych wejściowych (sprawdza, czy jest on większy niż 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)
Uruchomienie tego zapytania powoduje wystąpienie błędu: assert() has failed with message: 'Length must be greater than zero'
Przykład uruchamiania z prawidłowymi len
danymi wejściowymi:
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)
Dane wyjściowe
wejście |
---|
4567 |
Następujące zapytanie zawsze zakończy się niepowodzeniem, co pokazuje, że funkcja jest oceniana, mimo że assert
where b
operator nie zwraca żadnych danych, gdy b
jest to false
:
let b=false;
print x="Hello"
| where b
| where assert(b, "Assertion failed")
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla