# ERR

셀에 #ERR이 표시되는 것은 해당 셀이 함수를 적절하게 수행할 수 없음을 나타내며 이는 일반적으로 잘못된 입력 매개 변수로 인한 것입니다. #ERR 상태가 발생하는 이유는 다양한데, 비전 응용 프로그램의 정상적인 작동으로 인해 발생하는 경우도 있고 스프레드시트 논리 자체의 오류로 인해 발생하는 경우도 있습니다. 다음은 자주 발생하는 #ERR의 유형입니다.

1. 기본적인 수학적 오류: 셀 A4 = A3 / A2. 셀 A2의 값이 0이면 셀 A4의 함수에는 '0으로 나누기' 오류가 발생합니다.
2. 영역 그래픽 오류: 영역이 이미지에서 이동합니다. 패턴 일치 도구를 사용하여 이미지에서 어떤 것을 찾은 다음 결과 데이터를 다른 비전 도구의 Fixture로 이용할 경우 비전 도구의 영역이 이동하게 되면 해당 영역의 일부분이 이미지의 경계를 벗어나는 경우가 있습니다. 이렇게 되면 비전 도구는 유효한 비전 도구 결과 구조체를 반환하는 대신 #ERR을 보고합니다.
3. "Get" 함수의 실패: DetectBlobs 도구와 함께 GetX 함수를 사용하는 경우 비전 도구가 결과를 생성하지 않으며 DetectBlobs 도구가 예상되는 만큼의 미확인 개체를 찾지 못하는 경우가 있을 수 있습니다. 이렇게 되면 GetX 함수는 이미지에서 원하는 미확인 개체를 찾지 못한 경우 #ERR을 보고합니다.

## #ERR 셀 문제 해결

대부분의 #ERR 상태는 오류 문자열을 반환합니다. 오류 문자열이 제공된 경우 #ERR을 포함하는 셀 위로 마우스를 가져가면 오류 문자열이 표시됩니다. 속성 시트에 빨간색 느낌표 가 표시된 경우에도 그 위로 마우스를 가져가면 오류 문자열이 표시됩니다. GetErrorString 함수를 사용하여 오류 문자열을 프로그래밍 방식으로 반환할 수 있습니다. 각 오류 문자열에는 진단 코드가 연결되어 있으며 GetErrorCode 함수를 사용하면 반환됩니다.

## 오류 전파를 방지하기 위해 #ERR을 재정의하는 방법

DetectBlobs 도구로 찾은 다수의 미확인 개체에 대해 면적의 합을 계산하려고 하는 경우를 생각해 보겠습니다. GetArea 함수를 사용하여 blob 구조체로부터 개별 미확인 개체의 면적을 추출합니다. 미확인 개체를 찾지 못하면 GetArea 함수는 실패하지만 이 상황이 응용 프로그램에서 유효한 시나리오인 경우가 있습니다.

셀 | 함수 | 설명
A1 | DetectBlobs([매개 변수]) | 미확인 개체를 감지하고 Blobs 구조체를 반환합니다.
B1 | GetArea(A1,0) | 미확인 개체 0의 면적을 반환합니다
B2 | GetArea(A1,1) | 미확인 개체 1의 면적을 반환합니다
B3 | GetArea(A1,2) | 미확인 개체 2의 면적을 반환합니다
B4 | Sum(B1:B3) | 미확인 개체의 면적을 더합니다
여기에서 DetectBlobs 도구가 미확인 개체를 3개 이상 찾지 못하면 Sum(B1:B3)r이 참조한 셀 중 하나 이상이 #ERR을 보고하므로 이 수식도 #ERR을 보고합니다. 이 오류 상태를 재정의하려면 ErrFree 조회 함수를 활용할 수 있습니다.
B4 | Sum(ErrFree(B1:B3)) | 미확인 개체의 면적을 더합니다

참고: ErrFree 함수를 사용하면 #ERR을 보고하는 다른 셀의 입력 값은 0으로 변환됩니다. 이 경우에는 Sum 함수가 오류를 보고하는 대신 입력 #ERR 셀에 0을 추가합니다.