一次采访的问题。
请解释这个C ++代码的含义:
void Foo() throw;
答案 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)
这意味着开发人员不使用有意义的函数名称......