C++的异常rethrow

发布时间:2006-06-28 05:18     点击:
分页:[1] 2 3  下一页

语法

  很简单,有两种用法,如下:

  1、 throw ;

  2、 throw exception_obj ;

  第一种表示原来的异常对象再次被重新抛出;第二中呢,则表示原来的异常已处理或正在处理中,但此时又引发了另一个异常。示例如下:

void main()

{

try

{

try

{

throw 4;

}

catch(int value)

{

// 第一种用法,原来的异常被再次抛出

// 注意它不需要带参数。

throw;

}

try

{

throw 0.5;

}

catch(double value)

{

// 第二种用法,再次抛出另外的一个异常

// 它的语法和其它正常抛出异常的语法一样。

throw “another exception”;

}

}

catch(...)

{

cout << “unknow exception”<< endl;

}

}

在什么地方异常可以rethrow?

  当然,异常的rethrow只能在catch block中,或者说在catch block中抛出的异常才是异常的rethrow,因此注意下面的示例程序中存在语法错误,如下:

void main()

{

try

{

try

{

throw 4;

}

catch(int value)

{

// 这里的语法是对的。

throw;

}

// 但这里的语法却是不对的。

// 不能在这里进行异常的rethrow

throw;

}

catch(...)

{

cout << “unknow exception”<< endl;

}

}

异常rethrow需要注意的问题!

异常rethrow需要注意什么问题呢?看例子先!

void main()

{

try

{
分页:[1] 2 3  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有