C++的异常处理机制包括什么,如何理解?
C++的异常处理机制包括什么?C++处理异常的机制包括检查(try)、抛出(throw)和捕捉(catch)这三部分,很多朋友对于异常不是很理解,对此这篇就给大家来讲讲异常处理,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
异常处理主要是针对能通过编译但是运行是在某个特定条件下会出现异常,程序崩溃,结果出错。C++处理异常的机制是由3个部分组成的,即检查(try)、抛出(throw)和捕捉(catch)。把需要检查的语句放在try块中,throw用来当出现异常时发出一个异常信息,而catch则用来捕捉异常信息,如果捕捉到了异常信息,就处理它。
try { 被检查的语句}
catch(异常信息类型 [变量名])
{ 进行异常处理的语句}
粘一个简单的异常处理的题:
如果三角形满足三角形内角和大于第三边才会有输出,否则进行异常处理。
#includeiostream> using namespace std; int main() { double triangler(double a, double b, double c); { double a, b, c; cin > > a > > b > > c; try //在try块中包含要检查的函数 { while (a > 0 & & b > 0 & & & c > 0) { cout triangler(a, b, c) endl; cin > > a > > b > > c; } } //catch (double) //只能抛出对应类型的异常 //{ // { cout "a=" a ",b=" b ",c=" c ",that is not a triangler!" endl; } // cout "end" endl; //} catch (...)
//”...“代表可以抛出任何类型的异常 { { cout "a=" a ",b=" b ",c=" c ",that is not a triangler! it is all typical!" endl; } cout "end" endl; } } } double triangler(double a, double b, double c) { double s = (a + b + c) / 2; if (a + b = c || a + c = b || b + c = a) throw a; //抛出异常对象 return sqrt(s * (s - a) * (s - b) * (s - c)); }
1.在主函数中添加需要检查的语句或者程序段到try语句下;如果运行到try区域出现异常 则会抛出一个throw,然后返回上一级程序。在进行异常处理后,程序并不会自动终止,继续执行catch子句后面的语句。若是没有发现异常,直接跳到catch以后的程序
2.throw抛出的数据类型又人们自己来定义,catch(后的括号有什么数据类型则会检查什么数据类型的错误),如果比较懒的花括号里写三个点(...)代表所有类型
3.try catch结构可以与throw不在一起,甚至不在一个函数里。如果throw出一个异常,throw 会首先在本函数里找try catch函数如果找不到则会采取就近原则。
4.可以单独出现try,但不能单独出现catch
总结
现在大家对于C++的异常处理机制应该都有所了解了,希望大家阅读完这篇文章能有所收获。最后,想要了解更多C++异常处理的介绍,大家可以关注网络其它相关文章。
文本转载自PHP中文网
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: C++的异常处理机制包括什么,如何理解?
本文地址: https://pptw.com/jishu/655096.html