C 中的捕獲區塊:值與引用
在 C 中,可以選擇透過值或引用來擷取異常。此決定會影響程式碼的行為和正確性。
標準實踐
C 中異常的標準實踐是按值拋出並按引用捕獲。
推理
按值捕獲可以是存在繼承層次結構時會出現問題。考慮以下範例:
class CustomException { public: int errorCode; }; class MyException : public CustomException { public: MyException() { errorCode = 5; } };
如果拋出 MyException 並按值捕獲,它將轉換為 CustomException 實例,導致錯誤代碼設為 0。這可能會導致意外行為。
引用捕捉
引用捕捉異常,原來拋出的異常是維護,允許準確存取異常的屬性。在上面的範例中,捕獲 MyException &e 可確保錯誤代碼保持設定為 5。
何時按值捕獲
在極少數情況下,按值捕獲可能會更好,例如當:
建議
一般來說,強烈建議遵循按值拋出和按引用捕獲的標準做法,以確保正確處理異常,特別是在繼承。
以上是在 C 中透過值或引用進行捕獲:何時一個比另一個更好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!