在类内部声明处throw();
比方说
class shard_ptr{
public:
shard_ptr() throw();
//仅仅是举个例子
};
看到别人写的函数声明处也用到throw(),啥意思?空抛,出错时让try-catch接不住?
[解决办法]
就是告诉调用者这个函数不会抛出异常
C++的try-catch机制不象java,
如果java是抛出throw int的,则java调用者必须catch int类型异常,而C++只是声明用,调用者即使不catch也无所谓
[解决办法]
shard_ptr() throw();这种形式一般表示函数不会抛出任何异常(这个函数所调用的函数也不会抛出异常)
[解决办法]
shard_ptr() throw();中的throw()叫做异常规格,异常规格说明!
shard_ptr() throw() ;函数shard_ptr() 不抛出任何异常
shard_ptr() throw(badalloc); 函数shard_ptr() 只抛出badalloc类型的异常。
shard_ptr() 函数shard_ptr()可能会抛出任何异常。