try 블록 (C++ 전용)
try 블록 을 사용하여 즉시 처리하려는 예외를 발생시킬 수 있는 프로그램의 영역을 표시합니다. 함수 시도 블록 을 사용하여 함수의 전체 본문에서 예외를 발견하려 함을 표시합니다.
다음은 멤버 초기화 프로그램, 함수 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 블록이 포함되어 있습니다.