異常處理是程式設計中錯誤管理的重要面向。本文深入探討自訂異常拋出、try 語句和 catch 區塊來處理特定場景。
拋出自訂例外
拋出帶有自訂訊息的例外,利用 throw 語句並指定例外物件。例如,假設我們有一個函數compare(int a, int b),當任一整數為負數時,它應該會引發異常。修改後的定義將涉及:
#include <stdexcept> int compare(int a, int b) { if (a < 0 || b < 0) { throw std::invalid_argument("received negative value"); } }
為了方便起見,C 標準庫提供了一組預先建構的異常物件。請記住遵循按值拋出和按引用捕獲的最佳實踐。
捕獲自訂異常
定義異常後,下一步是使用 try 處理它- 捕獲塊。下面的程式碼示範了擷取和處理由比較拋出的 std::invalid_argument 例外:
try { compare(-1, 3); } catch (const std::invalid_argument& e) { // Perform actions based on the exception }
可以以菊花鏈方式連接其他 catch 區塊以區分各種例外類型。或者,catch(...) 不加區別地捕獲任何類型的異常。
高階異常處理
使用 throw 重新拋出異常;允許異常在呼叫堆疊中進一步傳播。當函數想要表明它無法在內部處理異常並且更願意將其委託給更高級別的函數時,這可能很有用。
以上是如何在 C 中自訂異常處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!