为了账号安全,请及时绑定邮箱和手机立即绑定

C++函数抛出异常是什么意思?throw是什么意思?

C++函数抛出异常是什么意思?throw是什么意思?

iOS
繁花如伊 2019-02-06 15:06:15
C++函数抛出异常是什么意思?throw是什么意思?
查看完整描述

4 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

就是抛出异常 等待catch,
可能具体细节有问题,意思就是这样的。
可以在里层把异常继续抛出,然后在外层catch这个异常
比如:
void main()
{
try
{
example()

}
catch(exceptioin e)

{
Console.WriteLine(e.message);

}
}

int example()
{
try
{
int i =9/0;

}
catch(exception e)

{
throw;

}
}



查看完整回答
反对 回复 2019-03-19
?
HUX布斯

TA贡献1876条经验 获得超6个赞

就是程序出错的时候,把错误抛给上一层引用。throw语句就是用来干这个事的。

比如下面的伪代码:
func2()
{
throw new Exception("I am a error"); //生成一个自定义异常抛出
}

main ()
{
try{
func2();

}
catch(Exception ex){
print ex;

}
}

程序会输出:"I am a error"



查看完整回答
反对 回复 2019-03-19
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

有三个关键字, 是关于异常处理的:
1、 try
  2、 catch
  3、 throw
  其中关键字try表示定义一个受到监控、受到保护的程序代码块;关键字catch与try遥相呼应,定义当try block(受监控的程序块)出现异常时,错误处理的程序模块,并且每个catch block都带一个参数(类似于函数定义时的数那样),这个参数的数据类型用于异常对象的数据类型进行匹配;而throw则是检测到一个异常错误发生后向外抛出一个异常事件,通知对应的catch程序块执行对应的错误处理。

语法 :

int main()
{
cout << "In main." << endl;
//定义一个try block,它是用一对花括号{}所括起来的块作用域的代码块
try
{
cout << "在 try block 中, 准备抛出一个异常." << endl;
//这里抛出一个异常(其中异常对象的数据类型是int,值为1)
//由于在try block中的代码是受到监控保护的,所以抛出异常后,程序的
//控制流便转到随后的catch block中
throw 1;
cout << "在 try block 中, 由于前面抛出了一个异常,因此这里的代码是不会得以执行到的" << endl;
}
//这里必须相对应地,至少定义一个catch block,同样它也是用花括号括起来的
catch( int& value )
{
cout << "在 catch block 中, 处理异常错误。异常对象value的值为:"<< value << endl;
}
cout << "Back in main. Execution resumes here." << endl;
return 0;
}

 


查看完整回答
反对 回复 2019-03-19
  • 4 回答
  • 0 关注
  • 1056 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信