// ============================================================================ // p1c07_06 — 7.2.5 异常变量生命周期 // 来源:川大 C++/LinuxC wiki「02.Qt方向」 // 说明:本文件由 gen_part1.py 合并页面中的教学片段而成。每个片段用 // // --- 原文片段 [pageId:blockIdx] --- 标注出处。 // 已做最小修正(笔误/平台移植),详见 docs/ERRATA.md。 // ============================================================================ #include using namespace std; // --- 原文片段 [58954474:5] 7.2.5 异常变量生命周期 --- class MyException { public: MyException(){ cout << "异常变量构造" << endl; }; MyException(const MyException & e) { cout << "拷贝构造" << endl; } ~MyException() { cout << "异常变量析构" << endl; } }; void DoWork() { throw new MyException(); //test1 2都用 throw MyExecption(); } void test01() { try { DoWork(); } catch (MyException e) { cout << "捕获 异常" << endl; } } void test02() { try { DoWork(); } catch (MyException &e) { cout << "捕获 异常" << endl; } } void test03() { try { DoWork(); } catch (MyException *e) { cout << "捕获 异常" << endl; delete e; } } // --- main --- int main() { test01(); test02(); test03(); return 0; }