首頁 >後端開發 >C++ >如何在 C 中拋出和捕獲異常來處理無效輸入?

如何在 C 中拋出和捕獲異常來處理無效輸入?

DDD
DDD原創
2024-11-23 07:48:17999瀏覽

How do You Throw and Catch Exceptions in C   to Handle Invalid Inputs?

異常處理:在 C 中引發異常

異常處理是 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn