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;
}
}
TA贡献1876条经验 获得超6个赞
就是程序出错的时候,把错误抛给上一层引用。throw语句就是用来干这个事的。
比如下面的伪代码:
func2()
{
throw new Exception("I am a error"); //生成一个自定义异常抛出
}
main ()
{
try{
func2();
}
catch(Exception ex){
print ex;
}
}
程序会输出:"I am a error"
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;
}
- 4 回答
- 0 关注
- 1056 浏览
添加回答
举报