在 C++11 中,声明一个函数不可以抛出任何异常使用关键字 noexcept。
void mightThrow();// could throw any exceptions.
void doesNotThrow() noexcept;// does not throw any exceptions.
下面两个函数声明的异常规格在语义上是相同的,都表示函数不抛出任何异常。
void old_stytle()throw();
void new_style() noexcept;
对于:
constchar* what ()constthrow()
{
//函数体
}
做几点说明,从左到右看:
- 1. const char * 表示返回值类型
- 2. what 是函数名称
- 3. () 是参数列表
- 4. const 表示该成员函数不能修改成员变量
- 5. throw() 是异常规格说明符。括号内写该函数可抛出的异常类型
上述 5 点均为函数的声明部分。