가장 안정적인 VI에서도 에러가 있을 수 있습니다. 에러 확인 메커니즘이 없는 경우에는, VI가 올바로 작동하지 않는다는 사실 밖에 모르게 됩니다. 에러 확인은 VI에서 에러가 발생하는 원인과 위치를 확인합니다.

예를 들어, 일반적으로 입력 및 출력(I/O)을 수행하려고 할 때 에러가 발생하는 상황이 있을 수 있습니다. 거의 모든 I/O 함수는 에러 정보를 반환합니다. VI, 특히 I/O 작업(파일, 시리얼, 인스트루먼테이션, 데이터 수집, 통신)용 VI에 에러 확인을 포함시키고, 효과적으로 에러를 처리하는 메커니즘을 포함시켜야 합니다.

자동 에러 핸들링

기본적으로 LabVIEW는 VI를 실행할 때 에러가 발생하면 실행을 정지하고, 에러가 발생한 SubVI 또는 함수를 하이라이트하고, 에러 대화 상자를 열어 자동으로 에러를 처리합니다.

노트 LabVIEW 런타임 엔진은 자동 에러 핸들링을 지원하지 않습니다.

자동 에러 핸들링 비활성화하기

또한 다른 에러 핸들링 방법을 사용하기 위해 자동 에러 핸들링을 비활성화시킬 수도 있습니다. 예를 들어, 블록다이어그램의 I/O VI가 타임아웃되는 경우, 자동 에러 핸들링이 어플리케이션을 정지시키고 에러 대화 상자를 보여주는 대신 해당 VI가 일정 주기의 시간을 기다렸다가 다시 시도하기를 원할 수 있습니다. VI의 블록다이어그램에서 사용자 정의된 에러 핸들링을 구현할 수 있습니다.

여러 종류의 VI에서 자동 에러 핸들링을 비활성화시키는 방법에 대한 정보는 다음 테이블을 참조하십시오.

VI의 타입 자동 에러 핸들링 비활성화하기
현재 VI 파일≫VI 프로퍼티를 선택합니다. 항목 풀다운 메뉴에서 실행을 선택한 후, 자동 에러 핸들링 활성화 확인란의 확인 표시를 제거합니다.
새 VI 도구≫옵션을 선택합니다. 항목 리스트에서 블록다이어그램을 선택한 후, 새 VI에서 자동 에러 핸들링 활성화 확인란의 확인 표시를 제거합니다.
VI 내부의 SubVI 또는 함수 SubVI에 에러 출력 인디케이터를 생성하거나, 해당 SubVI의 에러 출력 파라미터를 다른 SubVI나 함수의 에러 입력 입력에 연결합니다.

기타 에러 핸들링 방법

LabVIEW의 에러 핸들링은 데이터 값이 VI를 통과하는 흐름과 유사한 데이터 흐름 모델에 따릅니다. 에러 정보를 VI의 시작에서 끝까지 연결합니다. VI의 끝에 에러 핸들러 VI를 놓아 해당 VI가 에러 없이 실행되었는지 확인합니다. 각 VI의 에러 입력에러 출력 클러스터를 사용하여 VI를 통해 에러 정보를 전달합니다. 에러 클러스터는 일반적으로 동일한 표준 에러 입력표준 에러 출력 기능을 제공합니다. 에러 클러스터는 흐름 파라미터입니다.

예를 들어, 다음 이미지는 표준 에러 클러스터가 있는 VI를 디스플레이합니다.

VI를 실행하면 LabVIEW는 각 실행 노드에서 에러가 있는지 테스트합니다. LabVIEW가 에러를 발견하지 못하면, 노드는 정상적으로 실행됩니다. LabVIEW가 에러를 감지하면, 노드는 해당 코드 부분을 실행하지 않고 다음 노드에 에러를 전달합니다. 다음 노드도 이처럼 진행되고, 이런 방식으로 계속해서 이어집니다. 실행 흐름의 끝 부분에서 LabVIEW는 에러를 보고합니다.

에러 입력에러 출력 클러스터의 원소에 대한 정보는 다음 테이블을 참조하십시오.

클러스터 원소 이름 클러스터 원소 설명
상태 에러가 발생했을 때 참을 보고하는 불리언 값입니다.
코드 에러를 숫자로 표현하는 32비트 부호있는 정수입니다. 제로가 아닌 에러 코드가 표시되고 상태에 거짓이 나타나면 에러가 아닌 경고를 나타냅니다.
소스 어디에서 에러가 발생했는지 나타내는 문자열입니다.
노트 또한 불리언 데이터를 받는 일부 VI, 함수, 구조도 에러 클러스터를 인식합니다. 예를 들어, 에러 클러스터를 불리언 함수 또는 [선택] 함수의 불리언 입력, [LabVIEW 종료] 함수, [정지] 함수 중 하나에 연결하여 논리적 연산으로 에러를 처리할 수 있습니다.

LabVIEW에서는 사용자 고유의 에러 핸들링 방법을 개발하여 구현할 수 있습니다. 대화 상자 & 사용자 인터페이스 팔레트의 LabVIEW 에러 핸들링 VI와 함수 및 대부분의 VI와 함수의 에러 입력에러 출력 파라미터를 사용하여 에러를 처리합니다. 예를 들어, LabVIEW가 에러를 만났을 경우 다른 종류의 대화 상자에 에러 메시지를 디스플레이할 수 있습니다.

LabVIEW 고유의 VI와 함수는 숫자형 에러 코드나 에러 클러스터로 에러를 반환합니다. 대부분의 경우 함수는 숫자 에러 코드를, VI는 에러 입력 및 출력과 함께 에러 클러스터를 사용합니다.

에러 핸들링과 함께 디버깅 도구를 사용하여 에러를 확인하고 관리할 수 있습니다.

또한 에러 클러스터를 사용하는 일반적인 방법에 대한 예는 다음 테이블을 참조하십시오.

방법 설명
에러 클러스터를 사용하여 루프 정지시키기 에러 클러스터를 While 루프의 조건 터미널이나 조건 터미널이 있는 For 루프에 연결하여 루프의 반복을 정지시킬 수 있습니다. 에러 클러스터를 조건 터미널에 연결하면 에러 클러스터 상태 파라미터의 참 또는 거짓값만 터미널에 전달됩니다. 에러가 발생하는 경우 루프는 정지합니다. 또한 바로 가기 메뉴 아이템도 참인 경우 정지, 참인 경우 계속에서 에러 발생 시 정지, 에러 발생 시 계속으로 변경됩니다. 조건 터미널이 있는 For 루프에서, 값을 조건 터미널에 연결하거나 입력 배열을 자동 인덱싱하여 최대 반복 횟수를 설정해야 합니다. For 루프는 에러가 발생하거나 지정된 반복 횟수에 도달할 때까지 실행됩니다.
에러 상태에 따라 조건적으로 코드 실행하기 에러 클러스터를 케이스 구조의 선택자 터미널에 연결하면, 케이스 선택자는 에러에러 없음이라는 2개의 케이스를 디스플레이합니다. 에러가 발생하는 경우, 케이스 구조는 에러 서브다이어그램을 실행합니다. 에러 핸들링 템플릿 VI가 있는 SubVI를 사용하여 에러 핸들링을 위한 케이스 구조가 있는 VI를 생성합니다. 또한 케이스 구조의 경계의 색은 에러의 경우 빨간색으로, 에러 없음의 경우 녹색으로 변합니다.