这个C++代码是什么意思:"void Foo()throw;"?

sas*_*eve 1 c++ throw

一次采访的问题.

请解释这个C++代码的含义:

void Foo() throw;
Run Code Online (Sandbox Code Playgroud)

ken*_*ytm 10

void Foo() throw;
Run Code Online (Sandbox Code Playgroud)

这是语法错误.异常规范的语法(C++98§15.4)是:

异常规范:

throw ( type-id-list opt )

请注意,括号是必需的.


另一方面,

void Foo() throw();
Run Code Online (Sandbox Code Playgroud)

意味着该函数Foo()不会抛出任何异常.

  • 抛出你的Foo()并不礼貌.抱歉.我无法自拔. (5认同)
  • 投掷的括号很重要.您可以命名可能在其中引发的异常类型.如果它们是空的,如图所示,它确实意味着Foo()不会抛出("预期的")异常.关于异常规范的使用存在不同意见.这是一个:http://www.gotw.ca/publications/mill22.htm. (3认同)