handleOverflow

V6 예외 모드를 사용하는 경우(“V6 예외 호환성 사용” 참조) vgVar.handleOverflow 시스템 변수를 사용하여 EGL이 오버플로우 이후 오류를 처리하는 방식을 지정할 수 있습니다. 대부분의 경우 이 변수의 기본 설정(0)을 사용하십시오.

2개 유형의 오버플로우가 발생할 수 있습니다.
  • 산술 연산의 결과 또는 숫자 변수에 대한 지정으로 인해 변수 길이 때문에 유효값(10진수 위치 아님)이 유실되는 경우 사용자 변수 오버플로우가 발생합니다.
  • 산술 연산의 결과가 최대 자리 수(EGL 생성 COBOL의 경우 31, EGL 생성 Java™의 경우 32)보다 크면 최대값 오버플로우가 발생합니다.

V6 예외 모드를 사용하지 않으면 변수 오버플로우로 인해 EGL이 RuntimeException을 처리합니다.

지정 중 오버플로우가 발생하고 사용자가 오버플로우를 처리 중인 경우 대상 변수에 소스 값의 부분이 지정됩니다.

vgVar.handleOverflow를 다음 표의 값 중 하나로 설정할 수 있습니다.

표 1. handleOverflow의 값
영향
0(기본값) EGL 런타임 코드가 sysVar.overflowIndicator 시스템 변수를 1로 설정하고 계속합니다. COBOL 생성 중 기호 매개변수 HANDLEOVERFLOW를 사용하여 vgVar.handleOverflow의 기본값을 대체할 수 있습니다. 자세한 정보는 “사용자가 설정할 수 있는 사전 정의된 기호 매개변수”를 참조하십시오.
1 EGL이 RuntimeException을 처리합니다.
2 EGL 런타임 코드가 sysVar.overflowIndicator 시스템 변수를 1로 설정하고 계속합니다. 이 값은 효과가 0과 동일하며 이전 버전과의 호환을 위해 유지보수됩니다.
vgVar.handleOverflow의 특성은 다음과 같습니다.
기본 유형
NUM
데이터 길이
1
세그먼트된 컨버스 간에 저장된 값 여부

예제

다음 예제는 vgVar.handleOverflow 변수를 표시합니다.

  vgVar.handleOverflow = 1;

호환성 고려사항

표 2. 호환성 고려사항
플랫폼 문제
COBOL 생성 checkNumericOverflow 빌드 디스크립터 옵션을 YES로 설정한 경우가 아니면 vgVar.handleOverflow가 무시됩니다. checkNumericOverflow를 NO로 설정하고 V6 예외 모드를 사용하는 경우 각 유형의 오버플로우가 발생하면 프로그램이 종료합니다.

기호 매개변수 HANDLEOVERFLOW를 사용하여 vgVar.handleOverflow의 기본값을 변경할 수 있습니다.