currentException(EGL 시스템 변수)

V6 예외 모드에서 실행 중인 경우 sysLib.currentException 시스템 변수를 사용하여 실행 단위에서 처리된 예외에 대한 정보를 캡처할 수 있습니다.

V6 예외 모드에 대한 자세한 정보는 V6 예외 호환성 사용의 내용을 참조하십시오.

코드에서 V6 예외 호환성 아래 onException 블록을 입력하면 EGL이 sysLib.currentException을 문제점에 대한 정보로 채웁니다. 레코드인 V6 이전의 예외와 달리 sysLib.currentException은 사전이며 해당 키는 처리된 예외의 유형에 따라 다릅니다.

sysLib.currentException에는 예외를 식별하는 문자열인 code 키가 항상 있습니다.

onException 블록에서만 예외 필드에 액세스할 수 있습니다. EGL이 예외를 처리하지 않은 경우 코드에서 sysLib.currentException에 액세스하면 실행 단위가 종료됩니다.

예제

다음 예제에서 프로그램은 code 필드를 테스트하여 현재 예외를 판별합니다.

  if (userRequest == "A")
    try
      add record1;
    onException
      case (sysLib.currentException.code)
        when ("com.ibm.egl.FileIOException")
          myErrorHandler(12);
        when ("com.ibm.egl.InvocationException")
          myErrorHandler(13);
        otherwise
          myErrorHandler(15);
      end    end  end

예외 유형

다음 목록에는 sysLib.currentException을 설정하는 오류의 유형과 이후에 변수에 포함되는 정보가 있습니다. 달리 설명되지 않는 한 모든 값은 STRING 유형입니다.
FileIOException
파일 입출력(I/O) 오류 이후 변수에는 다음 정보가 있습니다.
코드
"com.ibm.egl.FileIOException"
설명
오류 메시지입니다.
파일 이름
오류가 있는 파일의 이름입니다.
errorCode
오류 코드입니다(예: SysVar.errorCode에 있는 오류 코드).
InvocationException
원격 call 명령문의 오류 이후 변수에는 다음 정보가 있습니다.
코드
"com.ibm.egl.InvocationException"
설명
오류 메시지입니다.
이름
EGL이 호출하려고 한 프로그램 이름입니다.
errorCode
오류 코드입니다(예: SysVar.errorCode에 있는 오류 코드).
LobProcessingException
BLOB, CLOB 또는 lobLib 함수에서 오류가 발생한 후 변수에는 다음 정보가 있습니다.
코드
"com.ibm.egl.LobProcessingException"
설명
오류 메시지입니다.
조작
오류를 트리거한 조작입니다.
자원
BLOB 또는 CLOB의 데이터가 저장되는 영역입니다(파일 이름 또는 단어 "메모리").
itemName
BLOB 또는 CLOB의 이름입니다.
MQIOException
메시지 큐 입출력(I/O) 오류 이후 변수에는 다음 정보가 있습니다.
코드
"com.ibm.egl.MQIOException"
설명
오류 메시지입니다.
이름
오류가 발생한 논리 큐의 이름입니다.
errorCode
오류 코드입니다(예: SysVar.errorCode에 있는 오류 코드).
mqConditionCode
메시지 큐에서 오류가 있는 코드입니다(예: VgVar.mqConditionCode에 있는 코드).
ServiceBindingException
서비스의 바인딩 중에 오류가 발생한 후 변수에는 다음 정보가 있습니다.
코드
"com.ibm.egl.ServiceBindingException"
설명
오류 메시지입니다.
ServiceInvocationException
서비스 호출 중에 오류가 발생한 후 변수에는 다음 정보가 있습니다.
코드
"com.ibm.egl.ServiceInvocationException"
설명
오류 메시지입니다.
소스
서비스의 유형("EGL" 또는 "WEB")입니다.
detail1
소스 필드가 WEB으로 설정된 경우 detail1은 SOAP 결함의 "FaultCode" 값입니다.
detail2
소스 필드가 WEB으로 설정된 경우 detail2는 SOAP 결함의 "SOAPActor" 값입니다.
detail3
소스 필드가 WEB으로 설정된 경우 detail3는 SOAP 결함의 "진단" 값입니다.
SQLException
SQL 입출력(I/O) 오류 이후 변수에는 다음 정보가 있습니다.
코드
"com.ibm.egl.SQLException"
설명
오류 메시지입니다.
sqlca
sqlLib.sqlData(EGL 시스템 변수)을 참조하십시오. 이 값은 HEX 유형입니다.
sqlcode
sqlLib.sqlData(EGL 시스템 변수)을 참조하십시오. 이 값은 INT 유형입니다.
sqlerrd
sqlLib.sqlData(EGL 시스템 변수)을 참조하십시오. 이 값은 INT 유형의 배열입니다.
sqlerrmc
sqlLib.sqlData(EGL 시스템 변수)을 참조하십시오. 이 값은 CHAR 유형입니다.
sqlwarn
sqlLib.sqlData(EGL 시스템 변수)을 참조하십시오. 이 값은 CHAR 유형의 배열입니다.
sqlstate
sqlLib.sqlData(EGL 시스템 변수)을 참조하십시오. 이 값은 CHAR 유형입니다.

호환성 고려사항

표 1. 호환성 고려사항
플랫폼 문제
COBOL 생성 sysLib.currentException 변수가 지원되지 않습니다.
JavaScript 생성 sysLib.currentException 변수가 지원되지 않습니다.