任何程序都难保会出现逻辑错误或运行异常。c++语言有专门的语句支持异常处理,从而使程序易于测试和处理错误。
在原来c语言面向过程的程序设计中,用if.....else....语句也可以处理出现的异常。在面向对象的程序设计中,显然要改变
这种方法。
在c++中用try,throw和catch语句来处理异常。(它们可以是语句,也可以是语句块。)try语句用来定义异常,包含有
可能产生异常的语句。throw语句是抛掷异常,当它检测到异常,则抛掷它。catch语句是异常处理语句,当异常被传递过来时,catch
捕获到它进而处理它。catch语句需要有形参类型。若tacth语句中需要形参,则需要形式参数,否则形式参数可有可无。但它是
严格匹配的。如果找不到与之匹配的catch语句,则程序调用abort()函数终止程序。
其使用大致如下:
......
try{
.....
throw a;
.....}
.....
catch(int a)
{.....}
可以有多个throw语句,每个throw语句抛掷的类型都要不同;对应的可以有多个catch语句,每个catch语句的形参类型不同,它们的形参
与throw是相对应的。需要特别注意:catch的形参类型是严格匹配的。如:
........
try{
int a=20;
.....
throw a;
}
......
catch(unsigned int)
{.......
}
.........
throw 和catch是不匹配的。
注意:1.try语句前不能出现catch语句。
2.抛掷语句throw与处理异常的catch语句可以出现在不同的函数中。但执行时,应是先执行throw,再执行catch语句。
3.在程序中可以出现多路捕获。