C++的异常rethrow

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

try

{

throw 4;

}

catch(int value)

{

// 异常的rethrow

throw;

}

catch(...)

{

cout << “能打印我这条消息吗?”<< endl;



}

catch(...)

{

cout << “unknow exception”<< endl;

}

}

  上面的程序运行结果是:“unknow exception”

  由此我们可以得出结论,异常的rethrow后,它会在它上一层的trycatch块开始查找匹配的catch block异常处理块,而在同一层中,如果当前的catch block后面还有其它的catch block,它是不会去匹配的。所以程序中一般层次模型的trycatch要比线性结构的trycatch要好一些,如下(示例2要比示例1好):

// 示例1

void main()

{

try

{

}

catch(DataType1&)

{

}

catch(DataType2&)

{

}

catch(DataType3&)

{

}

catch(...)

{



}

// 示例2

void main()

{

try

{

try

{

try

{

try

{

}

catch(DataType1&)

{

}

}

catch(DataType2&)

{

}

}

catch(DataType3&)

{

}

}

catch(...)

{

}

}

总结

  相遇篇的文章到此结束。通过这几篇文章的介绍,目前已经对异常处理编程的思想,C++异常处理模型、语法,以及C++异常处理与面向对象的关系等等,都有了一个大概性的了解。主人公阿愚根据自己的理解和经验,现在对相遇篇中的知识再做出如下一些总结:

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