try 블록 (C++ 전용)

try 블록 을 사용하여 즉시 처리하려는 예외를 발생시킬 수 있는 프로그램의 영역을 표시합니다. 함수 시도 블록 을 사용하여 함수의 전체 본문에서 예외를 발견하려 함을 표시합니다.

try 블록 구문

구문 다이어그램 읽기시각적 구문 다이어그램 건너뛰기try{명령문 } 핸들러

함수 try 블록 구문

구문 다이어그램 읽기시각적 구문 다이어그램 건너뛰기try :member_initializer_list 기능 본문 핸들러
다음은 멤버 초기화 프로그램, 함수 try 블록 및 try 블록이 있는 함수 try 블록의 예입니다.
#include <iostream>
using namespace std;

class E {
   public:
      const char* error;
      E(const char* arg) : error(arg) { }
};

class A {
   public:
      int i;

      // A function try block with a member
      // initializer
      A() try : i(0) {
         throw E("Exception thrown in A()");
      }
      catch (E& e) {
         cout << e.error << endl;
      }
};

// A function try block
void f() try {
   throw E("Exception thrown in f()");
}
catch (E& e) {
   cout << e.error << endl;
}

void g() {
   throw E("Exception thrown in g()");
}

int main() {
   f();

   // A try block
   try {
      g();
   }
   catch (E& e) {
      cout << e.error << endl;
   }
   try {
      A x;
   }
   catch(...) { }
}
다음은 위 예제의 출력입니다.
Exception thrown in f()
Exception thrown in g()
Exception thrown in A()
A 클래스의 생성자에 멤버 초기자 (initializer) 가 있는 함수 try 블록이 있습니다. 함수 f() 에 함수 try 블록이 있습니다. main() 함수에 try 블록이 포함되어 있습니다.