回答
void Foo() throw;
这是一个syntax error。为异常规范(C++ 98 § 15.4)的语法是:
异常规范:
throw
(
型-ID列表选择)
请注意括号是必需的。
在另一方面,
void Foo() throw();
意味着函数Foo()
不会引发任何异常。
void Foo() throw;
是形成不良。
相反void Foo() throw();
意味着函数“富”的声明,这样它不抛出任何异常
$ 15.4/10 - 。“没有 异常规范的函数允许所有 异常与函数empty exceptionspecification,throw(), 不允许任何异常。“
请注意,在**运行时**检查异常规格,这意味着一些开销,并且如果试图抛出一个非正则表达式,则会引发std :: bad_exception(通常会导致调用“unexpected”函数)匹配异常。 – 2010-08-26 13:02:53
在一次采访中,这个问题提供了一个很好的机会来谈论异常检查; C++和Java之间的差异;您的个人偏好和意见;当异常检查受到伤害或帮助时,等等。这种问题不是关于句法规则的字面正确的单个句子答案,而是更多关于邀请谈论你编程和思考的方式的问题。如果你假装知道的比你多,或者你的哲学与他们的哲学非常不同,那么这可能是危险的。
这应该是一个评论,因为它不回答这个问题。 – cake 2010-08-26 13:08:53
它回答了这个问题:“当我在面试中被问及时该说些什么?”这不同于“我在另一个人的代码中遇到过这个 - 这是什么意思?” – 2010-08-26 14:45:52
这意味着开发人员不使用有意义的函数名称...
- 1. 这个C++代码是什么意思?
- 2. 这是什么意思? int foo = foo + 4;
- 3. 这是什么C++代码的意思
- 4. “void *(*)(void *)”在C++中是什么意思?
- 5. 这个JS代码是什么意思?
- 6. 这个CSS代码是什么意思?
- 7. 这个MIP代码是什么意思?
- 8. 这个PHP代码是什么意思?
- 9. 这个Javascript代码是什么意思?
- 10. 这个javascript代码是什么意思?
- 11. 这个.htaccess代码是什么意思?
- 12. 这个python代码是什么意思?
- 13. 这是什么意思? void * free_me = 0;
- 14. void(^)(NSData *)是什么意思?
- 15. 这些代码行是什么意思?
- 16. 这是什么意思PHP代码? Magento
- 17. 这段代码是什么意思?
- 18. 这段代码是什么意思?
- 19. 插件代码 - 这是什么意思?
- 20. 这段代码是什么意思?
- 21. 这行代码是什么意思?
- 22. 这些WndProc代码是什么意思?
- 23. 这段代码是什么意思?
- 24. Ruby这行代码是什么意思?
- 25. 这些代码是什么意思?
- 26. 这段代码是什么意思?
- 27. 这段代码是什么意思?
- 28. 这段代码是什么意思?
- 29. 这段代码是什么意思?
- 30. 这段代码是什么意思?
你确定它是'throw;'而不是'throw();'? – kennytm 2010-08-26 12:57:46
@KennyTM是的,这就是我为什么要问的原因。 – sashaeve 2010-08-26 13:00:04