ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : article>Exception



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
* ¿¹¿Ü ¹ß»ý½ÃÀÇ °æ·Î¸¦ ÃßÀûÇØº¸¾Ò´Ù. throw ¿¡¼­ ÀÎÀÚ·Î ¹«¾ùÀ» ¾î¶»°Ô ³Ñ±â³Ä¸¦ ÁÖÀÇÇÏ¿© º¸¶ó.

class A {
        public:
        int b;
        A(A const & a) { cout << "copy" << endl; b = a.b; }
        A(int i): b(i) { cout << "default : " << b << endl; }
        ~A() { cout << "dest : " << b << endl;}
};

void prn3() throw (A) {
        A a(3);
        throw a;
        cout << "end prn3" << endl;
}

void prn2() {
        A a(2);
        prn3();
        cout << "end prn2" << endl;
}

void prn1() {
        A a(1);
        prn2();
        cout << "end prn1" << endl;
}

int main() {
        try {
                cout << "ready" << endl;
                prn1();
                cout << "go" << endl;
        } catch(A& a) {
                cout << "b is " << a.b << endl;
        }
        cout << "end main" << endl;
}


bash-2.03$ ./a.out
ready
default : 1
default : 2
default : 3
copy
dest : 3
dest : 2
dest : 1
b is 3
dest : 3
end main
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.