首页 > 专家说

C++高手请进: try在C++中代表什么 是什么类型的关键字

来源:新能源网
时间:2024-08-17 13:25:55
热度:

C++高手请进: try在C++中代表什么 是什么类型的关键字【专家解说】:try是c++异常处理结构try_catch throw 的一部分 抛出异常(也称为抛弃异常)即检测是否

【专家解说】:try是c++异常处理结构try_catch throw 的一部分 抛出异常(也称为抛弃异常)即检测是否产生异常,在C++中,其采用throw语句来实现,如果检测到产生异常,则抛出异常。该语句的格式为: throw 表达式; 如果在try语句块的程序段中(包括在其中调用的函数)发现了异常,且抛弃了该异常,则这个异常就可以被try语句块后的某个catch语句所捕获并处理,捕获和处理的条件是被抛弃的异常的类型与catch语句的异常类型相匹配。由于C++使用数据类型来区分不同的异常,因此在判断异常时,throw语句中的表达式的值就没有实际意义,而表达式的类型就特别重要。 【范例20-2】处理除数为0的异常。该范例将上述除数为0的异常可以用try/catch语句来捕获异常,并使用throw语句来抛出异常,从而实现异常处理,实现代码如代码清单20-2所示。 代码清单20-2 1 #include<iostream.h> //包含头文件 2 #include<stdlib.h> 3 double fuc(double x, double y) //定义函数 4 { 5 if(y==0) 6 { 7 throw y; //除数为0,抛出异常 8 } 9 return x/y; //否则返回两个数的商 10 } 11 void main() 12 { 13 double res; 14 try //定义异常 15 { 16 res=fuc(2,3); 17 cout<<"The result of x/y is : "<<res<<endl; 18 res=fuc(4,0); //出现异常 19 } 20 catch(double) //捕获并处理异常 21 { 22 cerr<<"error of dividing zero.\n"; 23 exit(1); //异常退出程序 24 } 25 }