代码之家  ›  专栏  ›  技术社区  ›  sashaeve

这意味着什么C++代码:“空洞FoE())抛出;“?

  •  1
  • sashaeve  · 技术社区  · 14 年前

    一次面试的问题。

    void Foo() throw;
    
    4 回复  |  直到 14 年前
        1
  •  10
  •   kennytm    14 年前
    void Foo() throw;
    

    这是一个 syntax error . 异常规范语法(C++ 98损坏15.4)是:

    异常规范:

    throw ( 类型id列表 )

    请注意,括号是必需的。


    另一方面,

    void Foo() throw();
    

    Foo() 不会抛出任何异常。

        2
  •  2
  •   Chubsdad    14 年前

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

    相反 void Foo() throw(); 表示函数“Foo”被声明为不会引发任何异常

    异常规范允许所有 例外情况。一个空函数 exceptionspecification,throw(),不执行 不允许任何例外。”

        3
  •  0
  •   Kate Gregory    14 年前

    在一次访谈中,这个问题提供了一个很好的机会来讨论异常检查;C++和java之间的区别;你个人的喜好和意见;例外检查有伤害或帮助的时候。这类问题与其说是关于陈述语法规则的正确的单句回答,不如说是关于邀请你谈谈你编程和思考的方式。如果你假装知道的比你多,或者你的人生观和他们的很不一样,那就很危险了。

        4
  •  0
  •   JohnMcG    14 年前

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