我應該在 C 中加入異常說明符嗎?
C 中的異常說明符允許函數指示它們是否可能拋出異常,例如:
<code class="cpp">void foo() throw(); // guaranteed not to throw an exception void bar() throw(int); // may throw an exception of type int void baz() throw(...); // may throw an exception of some unspecified type</code>
雖然這些說明符可以傳達意圖,但由於以下幾個因素,它們的實際使用存在疑問:
執行限制
編譯器並不嚴格執行強制執行異常說明符,降低其有效性。理想的行為會涉及違反規範的編譯錯誤,但這並不能保證。
對違規行為的嚴厲懲罰
如果函數違反異常說明符,標準行為是終止程序。這種嚴厲的回應可能不適合所有情況。
開發環境中不一致的處理
某些開發環境,例如VS.Net,將throw(X) 視為throw(...),破壞了對標準的遵守。
反對異常說明符的爭論
除了上述問題之外,還有幾個觀點主張反對使用異常說明符:
何時異常說明符可能有用
儘管一般建議不要使用異常說明符,但在以下情況下它們仍然是有益的:
以上是異常說明符在現代 C 中仍然相關嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!