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 유형입니다.
호환성 고려사항
| 플랫폼 | 문제 |
|---|---|
| COBOL 생성 | sysLib.currentException 변수가 지원되지 않습니다. |
| JavaScript 생성 | sysLib.currentException 변수가 지원되지 않습니다. |