WebSphere Message Service Clients for C/C++ and .NET, Version 1.2 운영 체제: Linux, Windows

C++의 오류 처리

XMS 메소드 호출을 처리하는 동안 오류를 발견하면 XMS 예외를 처리합니다.

XMS 예외는 다음 유형 중 하나의 오브젝트입니다.

예외 클래스는 이 목록에 있는 나머지 각 클래스의 수퍼클래스입니다. 그러므로 응용프로그램은 XMS 메소드 호출을 try 블록에 포함할 수 있으며 모든 유형의 XMS 예외를 발견하기 위해 발견 구성의 예외 선언에 Exception 클래스를 지정할 수 있습니다. 다음 코드 단편에서 이 기술에 대해 설명합니다.

#include <xms.hpp>

using namespace std;

int main(int argc, char *argv[])
{
  int                    nRC = 0;

  try
  {
    xms::ConnectionFactory connFact;
    xms::Connection        conn;

    connFact.setIntProperty(XMSC_CONNECTION_TYPE, XMSC_CT_RTT);
    connFact.setIntProperty(XMSC_RTT_CONNECTION_PROTOCOL, XMSC_RTT_CP_TCP);
    connFact.setStringProperty(XMSC_RTT_HOST_NAME, "localhost");
    connFact.setIntProperty(XMSC_RTT_PORT, 1506);

    conn = connFact.createConnection();

    // Other code here
  }
  catch(xms::Exception & ex)
  {
    // Error handling code here

    nRC = -1;
  }

  return(nRC);
}

그러므로 응용프로그램이 이 기술을 사용하여 XMS 예외를 발견할 경우 응용프로그램은 값이 아니라 참조별로 예외를 발견해야 합니다. 그렇게 하면 예외가 조각나지 않고 오류에 대한 중요한 데이터가 손실되지 않습니다.

Exception 클래스 자체는 std::exception 클래스의 서브클래스입니다. 그러므로 C++ 런타임 환경에서 처리하는 예외를 포함하여 모든 예외를 발견하기 위해 응용프로그램은 발견 구성의 예외 선언에 std::exception 클래스를 지정할 수 있습니다. 다음 코드 단편에서 이에 대해 설명합니다.

#include <xms.hpp>

using namespace std;

int main(int argc, char *argv[])
{
  int                    nRC = 0;

  try
  {
    xms::ConnectionFactory connFact;

    connFact.setIntProperty(XMSC_CONNECTION_TYPE, XMSC_CT_RTT);
    connFact.setIntProperty(XMSC_RTT_CONNECTION_PROTOCOL, XMSC_RTT_CP_TCP);
    connFact.setStringProperty(XMSC_RTT_HOST_NAME, "localhost");
    connFact.setIntProperty(XMSC_RTT_PORT, 1506);

    // Additional code here
  }
  catch(exception & ex)
  {
    // Error handling code here

    nRC = -1;
  }

  return(nRC);
}

응용프로그램은 XMS 예외를 발견한 후 Exception 클래스의 메소드를 사용하여 오류에 대한 정보를 찾을 수 있습니다. 이러한 메소드의 정의는 Exception을 참조하십시오. XMS 예외에 의해 캡슐화된 정보는 기본적으로 오류 블록에 있는 C 응용프로그램에 제공된 정보와 같습니다. 자세한 정보는 오류 블록을 참조하십시오.

XMS 호출 도중 둘 이상의 오류를 발견하면 XMS 각 오류에 대한 예외를 작성하고 예외를 링크하여 체인을 구성할 수 있습니다. 응용프로그램은 첫번째 예외를 발견한 후 getLinkedException() 메소드를 호출하여 포인터를 체인의 다음 예외로 가져갈 수 있습니다. 응용프로그램은 널 포인터가 리턴하여 체인에 더 이상 예외가 없음을 표시할 때까지 각 예외에 대해 getLinkedException() 메소드를 계속 호출할 수 있습니다.

getLinkedException() 메소드가 포인터를 링크 예외로 돌려보내므로 C++ 삭제 연산자를 사용하여 오브젝트를 릴리스하는 것은 응용프로그램이 담당합니다.

Exception 클래스는 응용프로그램에서 지정된 C++ 출력 스트림에 예외를 형식화된 텍스트로 덤프하는 데 사용할 수 있는 dump() 메소드를 제공합니다. << 연산자는 Exception 클래스에 오버로드되며 같은 목적으로 사용할 수 있습니다.

관련 개념
런타임에 처리할 수 있는 오류 조건

Concept topic

이용약관 | 피드백

Timestamp icon마지막 갱신 날짜: 3 Mar 2006
(C) Copyright IBM Corporation 2005. All Rights Reserved.
이 Information Center는 Eclipse 기술 기반입니다. (http://www.eclipse.org 웹 사이트 참조)