您的位置:首页 > 编程语言 > C语言/C++

C++函数声明后面加throw()的作用!

2016-12-20 15:49 363 查看

问题描述:

C++里面为什么有时候在函数声明的时候在后面加throw()关键字?

解释:

C++函数后面加关键字throw(something)限制,是对这个函数的异常安全作出限制;这是一种异常规范,只会出现在声明函数时,表示这个函数可能抛出任何类型的异常。

void fun() throw(); //表示fun函数不允许抛出任何异常,即fun函数是异常安全的。

void fun() throw(...); //表示fun函数可以抛出任何形式的异常。

void fun() throw(exceptionType); // 表示fun函数只能抛出exceptionType类型的异常。

举例说明:

void GetTag() throw(int); // 表示只抛出int类型异常

void GetTag() throw(int,char); // 表示抛出in,char类型异常

void GetTag() throw(); // 表示不会抛出任何类型异常

void GetTag() throw(...); // 表示抛出任何类型异常

void GetTag() throw(int); 表示只抛出int类型异常,并不表示一定会抛出异常,但是一旦抛出异常只会抛出int类型,如果抛出非int类型异常,调用unexsetpion()函数,退出程序。

void GetTag() throw(); 假如你加一个throw()属性到你的永远不会抛出异常的函数中,编译器会非常聪明的知道代码的意图和决定优化方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  throw C++ 异常 声明 规范