[英]What does mean this C++ code: “void Foo() throw;”?
来自一次采访的问题。
请解释一下此C ++代码的含义:
void Foo() throw;
void Foo() throw;
这是语法错误 。 异常规范(C ++ 98§15.4)的语法为:
异常规范:
throw
(
type-id-list opt)
请注意,括号是必需的。
另一方面,
void Foo() throw();
表示函数Foo()
不会引发任何异常。
void Foo() throw;
格式不正确。
而是void Foo() throw();
表示函数“ Foo”已声明为不会引发任何异常
$ 15.4 / 10-“不具有异常规范的函数将允许所有异常。具有空异常规范的函数throw()将不允许任何异常。”
在采访中,这个问题为讨论异常检查提供了一个很好的机会。 C ++和Java之间的区别; 您的个人偏好和意见; 在这种情况下,异常检查会损害或有所帮助等。这种问题与其说是陈述语法规则的字面上正确的单句答案,不如说是更多的问题,而是更多地邀请您讨论编程和思考的方式。 如果您假装比自己了解更多信息,或者您的哲学与他们的哲学截然不同,可能会很危险。
这意味着开发人员没有使用有意义的函数名...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.