刷野打怪上王者·C++篇·第19期·异常处理

网友投稿 282 2022-09-22

刷野打怪上王者·C++篇·第19期·异常处理

参考链接

​​RUNOOB.COM​​

异常处理

当我们在写项目代码的时候,并不是一写即成的状态,而是要反复多次测试才能使程序出错率降到最低。因此,在程序测试过程中,需要将可能出现的异常进行监视,并在出错的时候返回异常信号、内存释放等。

在C++的异常处理中主要有三个关键字:try、catch、throw。try:可能出现要出现异常的代码块;catch:捕获异常信号;throw:异常出现时,抛出一个异常。

try/catch处理try{ /*可能出现异常信号的代码*/}cathc(/*异常类型*/){ /*异常处理代码*/}...cathc(/*异常类型*/){ /*异常处理代码*/}throw:语句的操作数可以是任意的表达式,表达式的结果的类型决定了抛出的异常的类型。

代码实例

#include using namespace std;class dataDisposeClass{public: dataDisposeClass(int iTmp1, int iTmp2); ~dataDisposeClass(); void dividData();private: int iVar1; int iVar2;};dataDisposeClass::dataDisposeClass(int iTmp1, int iTmp2){ this->iVar1 = iTmp1; this->iVar2 = iTmp2;}void dataDisposeClass::dividData(){ try { if (this->iVar2 == 0) throw -1; else cout << this->iVar1 / this->iVar2 << endl; } catch (double tmp) { cout << "error catch(double) = " << tmp << endl; } catch (int tmp) //捕获与之类型相同的数据进行操作 { cout << "error catch(int) = " << tmp << endl; }}dataDisposeClass::~dataDisposeClass(){}int main(){ dataDisposeClass dataDispose1(5, 0); dataDispose1.dividData(); //程序运行时会跑出异常 dataDisposeClass dataDispose2(5, 1); dataDispose2.dividData(); getchar();}

运行结果

error catch(int) = -15

在C++中定义了标准系统

中的结构:

每个的含义为:

实例代码

#include #include using namespace std;int main(){ try { char *cPtr = new char[0x7fffffff]; //无法分配这么多空间,会抛出异常 } catch (bad_alloc &error) { cout << error.what() << endl; } getchar(); return 0;}

运行结果

bad allocation

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:关于微信视频号的发展!
下一篇:刷野打怪上王者·C++篇·第23期·标准流输入输出
相关文章

 发表评论

暂时没有评论,来抢沙发吧~