一、整体代码
#include#include using namespace std; class MyException { public: MyException(const char* message) : message_(message) { cout<<"MyException ..."<
二、结果
throw异常前面的代码,如果有变量要进行释放。比如test2还有MyException
< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgICAgICAvL015RXhjZXB0aW9uIGUo"division by zero");//调用构造函数//throw e;//调用拷贝构造函数,成为全局变量
throw MyException("division by zero");//只调用构造函数
//throw 1.0;//抛出浮点数异常
此时结果如下:
obj_ = new Obj;
cout<<"Test2 ..."<
throw MyException("test exception2");//在对象还没有构造完成时,就抛出了异常
如果Test2构造函数中,抛出异常,那么类此时还没有构造完成,此时不会调用析构函数
三、解释
throw() 说明不能抛出异常
throw(MyException) 只能抛出MyException
如果异常未被捕获会出现下面的效果:被系统捕获了
![]()


