V6 예외 호환성 사용

v60ExceptionCompatibility 프로그램 특성을 YES로 설정하여 EGL 버전 6.0의 예외 핸들링 동작으로 되돌릴 수 있습니다. v60ExceptionCompatibility을 참조하십시오.

코드를 버전 6에서 마이그레이션하는 경우 EGL이 자동으로 v60ExceptionCompatibility 특성을 YES로 설정합니다. 이 특성을 실행 단위에 있는 다른 프로그램에서 다른 값으로 설정할 수 있지만 이와 같은 설정은 위험합니다.

실행 단위에 마이그레이션된 코드가 없는 경우에는 새 코드 개발에 V6 예외 모드를 사용하지 않는 것이 좋습니다.

v60ExceptionCompatibility를 YES로 설정하면 대부분의 시스템 함수 호출(EGL mathLib 또는 sysLib 라이브러리와 같은 라이브러리에 대한 호출) 뒤에 sysVar.errorCode 시스템 변수에 액세스할 수 있습니다. V6 예외 모드 외부에서는 이 같은 상황에서 sysVar.errorCode의 값이 정의되지 않습니다. 시스템 함수 호출 뒤에 sysVar.errorCode에 액세스하려면 다음 조치 중 하나를 수행해야 합니다.
  • try 블록에서 오류가 발생하는 함수 호출을 엔클로징하십시오.
  • vgVar.handleSysLibraryErrors 시스템 변수를 1로 설정하십시오(handleSysLibraryErrors 참조).
다음 상황에서 오류가 발생하면 프로그램이 즉시 종료됩니다.
  • 사용자가 V6 예외 모드에 있습니다.
  • try 블록 외부에서 오류가 발생합니다.
  • vgVar.handlesysLibraryErrors가 0으로 설정되었습니다.
V6 예외 모드에서 실행 중인 경우 하드 입출력(I/O) 오류가 발생하면 try 블록 내에서 오류가 발생하지 않고 다음 변수 중 하나를 1로 설정하지도 않은 경우 프로그램이 종료됩니다.
  • vgVar.handleHardIOErrors가 발생하면 EGL이 입출력(I/O) 호출 시(DL/I 레코드가 관련된 호출 포함) 하드 입출력(I/O) 오류를 처리합니다.
  • dliVar.handleHardDLIErrors가 발생하면 EGL이 DLISegment 스테레오타입이 있는 레코드를 참조하는 하드 입출력(I/O) 오류만 처리합니다.