C++中的句柄错误

王朝c/c++·作者佚名  2006-01-06
宽屏版  字体: |||超大  

Java中的最好的一件事情是彻底的使用异常并依存异常。使用异常你可以在句柄操作错误的时候获得一个安全可靠的方法。

不幸地是,大多数的C++类库中,异常不是类的基本部分。为了让C++的异常处理和Java的水平相当,你需要在你的应用程序或者库中小心的设计异常处理。

首先,你需要在你的设计文档中详细的定义出错处理。更多时候,出错处理是一个事后产生的想法。在你开始编写代码之前,你需要为每个函数制定异常规格说明。

一旦你知道你的函数是什么异常,你需要定义一个层次。注意,和Java不一样的是,任何在throw语句中都可以被thrown。但是使用基本的数据类型不允许任何分层次的扑捉结构,并且,我反对使用它们。

如果你使用一个类库,这个类库有自己的异常层次,你可以从那里开始。但是,通常你希望添加你自己的异常到层次中,如果你使用一个标准C++编译器,你可以从标准库中开始异常。

记住你通常catch一个异常并throw另外一个,因此,异常连锁是有益的。添加异常连锁和添加一个构造函数一样简单。它将使用异常的基本类。

混合异常和C的类型返回值错误是一个好的办法。如果可以的话,提炼C错误报告函数和你程序的其余部分的接口

C++异常规格有一个普通的语法:

//Declaration

void foo() throw (IOException);

//definition

void foo() throw (IOException){

//do something

}

注意,声明和定义必须有同样的异常规格。不幸地是,C++异常规格和Java的异常规格不一样。C++版本的进程中的std::unexpected异常代替了Java中的编译错误。同样的C++异常规格默认throw任何异常。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有