異常處理是 C 中的一項關鍵技術,可讓您有效地管理錯誤和異常情況。了解如何拋出、嘗試和捕獲異常對於編寫健全且可靠的程式碼至關重要。
異常有用的一個常見場景是當您想要處理正常程式執行期間不應發生的無效輸入或條件時。例如,讓我們考慮一個比較兩個整數的函數compare(int a, int b)。
為了處理a或b為負數的情況,我們可以修改compare函數的定義,如下所示:
#include <stdexcept> int compare(int a, int b) { if (a < 0 || b < 0) { throw std::invalid_argument("received negative value"); } }
在此範例中,如果任一參數為負數,我們將使用throw 語句引發異常。 std::invalid_argument 是一個內建例外對象,對應於傳遞給函數的無效參數。
要處理比較函數拋出的異常,我們可以使用 try-catch 區塊:
try { compare(-1, 3); } catch (const std::invalid_argument& e) { // Handle the exception here... }
在 try 區塊中,我們嘗試使用可能無效的輸入執行比較函數。如果拋出異常,catch 區塊會捕獲它,為我們提供對異常物件 e 的參考。我們可以使用這個物件來確定異常的原因並採取適當的操作。
此外,C 在異常處理方面提供了靈活性。您可以按值拋出並按引用捕獲,如上面的範例所示。您也可以使用 catch(...) 重新拋出異常或捕獲異常,無論其類型為何。這些功能使您能夠以自訂且高效的方式處理異常場景。
以上是如何在 C 中拋出和捕獲異常來處理無效輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!