assertion은 프로그래머로서 프로그램의 특정 지점에서 분명히 사실 일 것으로 예상되는 조건입니다. 많은 프로그래밍 언어는 조건을 주장하는 방법을 제공하며, 프로그래머는 어설 션을 사용하여 많은 문제를 발견하고 진단합니다.
assert(a == 0);
을 런타임시 경우, a
는 특정 부분에 0
되지 않습니다 :
프로그램의 특정 시점에서, 당신은 0
을 할 a
라는 변수를 기대하는 경우, 예를 들어, 사용자가 쓸 수 있습니다 프로그램의 경우 인공 오류가 발생하고 디버거가 바로 멈추어 문제를 진단하고 a
이 0
이 아닌 이유를 이해할 수 있습니다.
매우 일반적인 주장은 특정 예에서
assert(some_pointer != NULL); // We already checked this before
처럼 pred_dir
라는 변수가보다 작거나 2
같 될 것으로 예상된다 간다. 어설 션 오류가 발생하면 어떤 이유로 pred_dir
이 2
보다 큼을 나타냅니다. 프로그램의 나머지 부분이 이것을 기대하지 않기 때문에 계속 진행하는 것은 의미가 없으며 프로그램이 바로 멈출 것입니다.
어설 션은 사용자에게 오류를 표시하는 방법이 아닌 "온 전성 검사"를 구현하는 데 도움이되는 디버깅 도구입니다. 따라서 프로그램을 만들 때 많은 것을 사용하여 프로그램 상태에 대한 귀하의 모든 가정이 올바른지 확인하십시오. 프로그램이 정확하다면, 단정은 결코 프로그램을 중단 시켜서는 안됩니다.
어설 션은 디버깅을 돕기 때문에 사용자에게 배포 할 프로그램을 릴리스 할 때 어설 션을 검사하는 것은 의미가 없습니다. 따라서 많은 프로그래머가 그렇게 할 때 단언 검사를 중지합니다. Visual Studio와 같은 많은 환경에서는 릴리스 빌드를 만들 때 자동으로 해제합니다.
wikipedia article을 확인하십시오. 자세한 설명은 어설 션을 참조하십시오.
릴리스 된 제품 또는 타사 라이브러리에서 어설 션이 발생하면 해당 프로그램에 오류가있는 것일 가능성이 큽니다. 문제를 재현 할 수 있으면 프로그램 작성자에게보고하십시오.
"assert - 어설 션이 틀린 경우 프로그램 중단" – sujin