// ============================================================================ // p1c07_07 — 7.2.6 异常的多态使用 // 来源:川大 C++/LinuxC wiki「02.Qt方向」 // 说明:本文件由 gen_part1.py 合并页面中的教学片段而成。每个片段用 // // --- 原文片段 [pageId:blockIdx] --- 标注出处。 // 已做最小修正(笔误/平台移植),详见 docs/ERRATA.md。 // ============================================================================ #include using namespace std; // --- 原文片段 [58954474:6] 7.2.6 异常的多态使用 --- //异常基类 class BaseException{ public: virtual void printError_2(){}; }; //空指针异常 class NullPointerException : public BaseException{ public: virtual void printError_2(){ cout << "空指针异常!" << endl; } }; //越界异常 class OutOfRangeException : public BaseException{ public: virtual void printError_2(){ cout << "越界异常!" << endl; } }; void doWork(){ throw NullPointerException(); } void test() { try{ doWork(); } catch (BaseException& ex){ ex.printError_2(); } } // --- main --- int main() { test(); return 0; }