回答
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. 這個C代碼是什麼意思?
- 3. 這個C++代碼是什麼意思?
- 4. 這是什麼意思? int foo = foo + 4;
- 5. 0x0F是什麼意思?這個代碼是什麼意思?
- 6. 這是什麼C++代碼的意思
- 7. 這些C#代碼是什麼意思?
- 8. 「void *(*)(void *)」在C++中是什麼意思?
- 9. 這個CSS代碼是什麼意思?
- 10. 這個javascript代碼是什麼意思?
- 11. 這個.htaccess代碼是什麼意思?
- 12. 這個JS代碼是什麼意思?
- 13. 這個java代碼是什麼意思
- 14. 這個MIP代碼是什麼意思?
- 15. 這個PHP代碼是什麼意思?
- 16. 這個代碼中'$'是什麼意思?
- 17. 這個XML代碼是什麼意思?
- 18. 這個HTML代碼是什麼意思?
- 19. 這個javascript代碼是什麼意思?
- 20. 這個python代碼是什麼意思?
- 21. 這個vba代碼是什麼意思?
- 22. 這個git代碼是什麼意思?
- 23. 這個Javascript代碼是什麼意思?
- 24. 這個asm代碼是什麼意思?
- 25. 這個ruby代碼是什麼意思?
- 26. foo是什麼意思?
- 27. 這個命令是什麼:var a,foo =「foo」;意思?
- 28. 這是什麼意思? void * free_me = 0;
- 29. void(^)(NSData *)是什麼意思?
- 30. '<<'是什麼意思?而這個代碼是什麼意思?
你確定它是'throw;'而不是'throw();'? – kennytm 2010-08-26 12:57:46
@KennyTM是的,這就是我爲什麼要問的原因。 – sashaeve 2010-08-26 13:00:04