예외 전달

메시지 처리의 종료가 필요한 메시지 플로우에서 오류 또는 기타 상황을 감지할 경우 다음 두 가지 방법으로 메시지 플로우에서 예외를 전달할 수 있습니다.

  1. ESQL THROW EXCEPTION문을 사용하십시오.

    THROW문을 Compute, Database 또는 Filter 노드의 ESQL 모듈 아무 곳에나 포함시키십시오. 명령문에서 사용자 고유의 데이터를 예외에 삽입되도록 코드화하기 위한 옵션을 사용하십시오.

  2. 메시지 플로우에 THROW 노드를 포함시키십시오.

    예외 컨텐츠 및 소스를 식별하도록 노드 등록 정보를 설정하십시오.

명령문 옵션이나 노드 등록 정보를 사용할 경우 메시지 텍스트에 삽입된 메시지 ID 및 값을 지정하여 예외를 해석하는 사용자에게 추가 정보 및 식별 기능을 제공할 수 있습니다. 브로커에 사용할 수 있는 카탈로그에서 메시지를 지정할 수 있습니다. 자세한 정보는 사용자 정의 확장에서 이벤트 로그 기록 사용을 참조하십시오.

예외를 발생시키려는 상황은 메시지 플로우의 작동에 의해 판별되므로; 메시지 플로우를 설계할 때 이 조치가 적절할 수 있는 위치를 결정하십시오. 예를 들면, 입력 메시지가 입력 노드(특정 메시지 형식이 수신되었는지 점검할 수 있는)에 의해 감지되지 않는 기준에 해당하는지 확인하기 위해 입력 메시지의 컨텐츠를 조사하고자 할 수 있습니다.

아래 예에서는 ESQL THROW문의 사용 방법을 표시하는 예시된 송장(invoice) 메시지를 사용합니다. 송장 번호가 특정 범위 내에 있는지 점검하려는 경우, 올바른 범위에 속하지 않은 송장 메시지가 수신된 경우 예외를 전달하십시오.

--Check for invoice number lower than permitted range
IF Body.Invoice.InvoiceNo  < 100000 THEN
      THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1234 VALUES
      ('Invoice number too low', Body.Invoice.InvoiceNo);

-- Check for invoice number higher than permitted range
ELSEIF Body.InvoiceNo > 500000 THEN
            THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1235 VALUES
      ('Invoice number too high', Body.Invoice.InvoiceNo);

ELSE DO
    -- invoice number is within permitted range
    -- complete normal processing
ENDIF;
관련 개념
메시지 플로우 개요
예외 목록 트리 구조
ESQL 개요
메시지 모델링
관련 태스크
메시지 플로우 설계
메시지 플로우 컨텐츠 정의
메시지 플로우 내의 오류 핸들링
ESQL 파일 관리
관련 참조
Compute 노드
Database 노드
Filter 노드
ESQL 참조
THROW문
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac17150_