std :: exception类定义如下
exception() throw() { }
virtual ~exception() throw();
virtual const char* what() const throw();
Run Code Online (Sandbox Code Playgroud)
throw()语法在声明中的含义是什么?可以throw()接受参数吗?什么没有参数意味着什么?
小智 18
这是一个"例外规范".throw()表示"此函数不会抛出任何异常".你也可以指定异常,所以throw(foo)会说这个函数可能抛出foo类型的异常.
这个功能的用处在C++社区中已经引起了很多争论 - 一般评估似乎并不是特别有用.有关详细信息,请查看此Herb Sutter文章.
Lea*_*elo 12
不带任何参数,这意味着上述功能并不会引发任何异常.
如果您将任何内容指定为参数,则表示该函数将仅抛出该类型的异常.但请注意,这不是对编译器的强制执行.如果碰巧抛出某个其他类型的异常,程序将调用std :: terminate().
| 归档时间: |
|
| 查看次数: |
5047 次 |
| 最近记录: |