繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM