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

时间:2010-08-26 12:54:12

标签: c++ throw

一次采访的问题。

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

void Foo() throw;

4 个答案:

答案 0 :(得分:10)

void Foo() throw;

这是syntax error。异常规范的语法(C ++98§15.4)是:

  

异常规范:

     
    

throw ( type-id-list opt )

  

请注意,括号是必需的。


另一方面,

void Foo() throw();

表示函数Foo()不会抛出任何异常。

答案 1 :(得分:2)

void Foo() throw;格式不正确。

void Foo() throw();意味着声明函数'Foo'使得它不会抛出任何异常

  

$ 15.4 / 10 - “没有的功能   异常规范允许所有   例外。一个空的函数   exceptionspecification,throw(),确实   不允许任何例外。“

答案 2 :(得分:0)

在一次采访中,这个问题提供了一个讨论异常检查的好机会; C ++和Java之间的差异;您的个人喜好和意见;在异常检查受到伤害或帮助的时候,等等。这个问题不是关于语法规则的字面上正确的单句答案,而是关于讨论你编程和思考方式的邀请。如果你假装比你更了解,或者你的哲学与他们的哲学非常不同,可能会很危险。

答案 3 :(得分:0)

这意味着开发人员不使用有意义的函数名称......