C++中什么是异常接口声明?

来源:百度知道 编辑:UC知道 时间:2024/05/18 04:50:57
什么是异常接口声明?

出现异常~~那么处理异常的函数就是异常接口~~
函数的声明就是~异常接口声明..

是异常规范吧!

异常异常规范exception specification 提供
了一种方案它能够随着函数声明列出该函数可能抛出的异常它保证该函数不会抛出任何
其他类型的异常
异常规范跟随在函数参数表之后它用关键字throw 来指定后面是用括号括起来的异
常类型表例如我们可以如下修改iStack 类的成员函数的声明以增加适当的异常规范
class iStack {
public:
// ...
void pop( int &value ) throw(popOnEmpty);
void push( int value ) throw(pushOnFull);
private:
// ...
};

如果函数声明指定了一个异常规范,则同一函数的重复声明必须指定同一类型的异常规
范,同一函数的不同声明上的异常规范是不能累积的。例如
// 同一函数的两个声明
extern int foo( int = 0 ) throw(string);
// 错误: 异常规范被省略
extern int foo( int parm ) { }

如果函数抛出了一个没有被列在异常规范中的异常会怎么样程序只有在遇到某种不正
常情况时异常才会被抛出在编译时刻编译器不可能知道在执行时程序是否会遇到这些
异常因此一个函数的异常规范的违例只能在运行时刻才能被检测出来如果函数抛出了
一个没有被列在其异常规范中的异常则系统调用C++标准库中定义的函数unexpected()
unexpected()的缺省行为是调用terminate() 在某些条件下可能有必要改变unexpected()
执行的动作C++标准库提供了一种机制可让我们改变unexpected()的缺省行为

1 空的异常规范保证函数不会抛出任何异常例如函数no_problem()保证不会抛出任何
异常
exter