다음을 통해 공유


assert()

적용 대상: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

조건을 확인합니다. 조건이 false이면 오류 메시지를 출력하고 쿼리에 실패합니다.

참고 항목

함수는 assert 상수 폴딩 및 조건자 단락과 같은 최적화가 적용되기 전에 쿼리 분석 단계 중에 평가됩니다.

참고 항목

지정된 assert 매개 변수는 쿼리 분석 단계 동안 상수로 평가되어야 합니다. 즉, 상수만 참조하는 다른 식에서 생성할 수 있으며 행 컨텍스트에 바인딩할 수 없습니다.

구문

assert(조건,메시지)

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 Type 필수 설명
condition bool ✔️ 계산할 조건부 식입니다. 쿼리 분석 단계 중에 조건을 상수로 평가해야 합니다.
message string ✔️ 어설션이 .로 평가되는 false경우 사용되는 메시지입니다.

반품

조건이 .인 경우 반환 true 합니다 true. 조건이 .로 평가되면 의미 체계 오류가 발생합니다 false.

예제

다음 쿼리는 입력 문자열 길이를 확인하고 입력 길이 매개 변수의 유효성을 검사하는 데 사용하는 assert 함수 checkLength() 를 정의합니다(0보다 큰지 확인).

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)

이 쿼리를 실행하면 오류가 발생합니다. assert() has failed with message: 'Length must be greater than zero'

유효한 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)

출력

input
4567

다음 쿼리는 연산자가 다음과 같은 경우 falseb 데이터를 반환하지 않더라도 함수가 평가됨을 assert where b 보여 주는 항상 실패합니다.

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