class exception { ... }; // 來自標準C++庫(STL) // 中的異常類層次 void someFunction() { static exception ex; // 異常對象 ... throw &ex; // 拋出一個指針,指向ex ... } void doSomething() { try { someFunction(); // 拋出一個 exception* } catch (exception *ex) { // 捕獲 exception*; ... // 沒有對象被拷貝 } } |
void someFunction() { exception ex; // 局部異常對象; // 當退出函數的生存空間時 // 這個對象將被釋放。 ... throw &ex; // 拋出一個指針,指向 ... // 已被釋放的對象 } |
void someFunction() { ... throw new exception; // 拋出一個指針,指向一個在堆中 ... // 建立的對象(希望 } // 自己不要再拋出一個 // 異常!) |