在 C++ 中捕獲所有異常

Muhammad Adil 2023年1月30日 2022年7月18日
  1. C++ 中的異常處理
  2. 在 C++ 中捕獲所有異常
  3. 在 C++ 中捕獲所有異常的步驟
在 C++ 中捕獲所有異常

C++ 是一種功能強大的通用程式語言,它是靜態型別、自由形式、多正規化的編譯語言。C++ 已經建立了許多程式和應用程式,包括 Windows 作業系統。

在 C++ 11 中,我們使用新的當前異常機制來捕獲所有異常。本文將詳細介紹如何在 C++ 中處理所有異常。

讓我們從異常處理的介紹開始。

C++ 中的異常處理

異常處理是程式語言中用來處理錯誤和異常的一種機制。C++ 提供了一組豐富的異常處理功能,包括捕獲或忽略特定型別的異常以及使用解構函式進行清理。

它可以幫助程式設計師避免緩衝區溢位和記憶體洩漏等常見錯誤,這些錯誤通常會導致程式崩潰或行為不正常。異常處理還使程式設計師更容易處理容易出錯的程式碼,方法是將其封裝在可以單獨測試的異常處理程式碼中,然後如果程式設計師願意,可以簡單地禁用。

異常處理使程式設計師能夠編寫健壯的程式,這些程式可以處理不可預見的情況而不會崩潰,並在它們發生時從中恢復。

異常處理可以是同步的也可以是非同步的。

當可以在不中斷程式執行的情況下處理程式碼中的問題時,將生成同步異常。同步異常也稱為檢查異常。

另一方面,當程式碼中出現不中斷程式執行而無法處理的問題時,就會產生非同步異常。非同步異常也稱為未經檢查的異常。

在 C++ 中捕獲所有異常

當前新的異常機制是一種在 C++ 中捕獲所有異常的方法;它是在 C++11 中引入的。它是老式技術的替代方法,即使用 try-catch 塊僅捕獲一些異常。

這種新方法具有一些使其優於舊方法的特性。

舊方法是使用 throw 關鍵字丟擲異常並使用 try-catch 塊捕獲它。新方法是使用 throw 關鍵字,後跟我們要捕獲的異常型別列表。

它可以與任何異常型別一起使用,而不僅僅是 std::exception,只要你有辦法儲存和傳遞表示異常型別的物件。

此外,新系統還允許你指定任意數量的函式來捕獲不同型別的異常。與舊系統不同,它不需要為每種異常型別使用單獨的函式。

在 C++ 中捕獲所有異常的步驟

需要以下步驟來捕獲 C++ 中的所有異常:

  • 宣告一個用作異常處理程式的類。
  • 定義此處理程式應捕獲哪些異常。
  • 讓 main 函式使用用於捕獲異常的類的例項呼叫新的 C++11 異常機制。
  • 編寫可以丟擲異常的程式碼,並確保當前的異常機制能夠捕獲它。

新的 C++11 異常機制使程式設計師更容易確保他們在程式碼中捕獲所有可能的執行時錯誤,而無需為每個錯誤手動編寫 try-catch 塊。

讓我們看一個 try-catch 語句的示例。

#include <iostream>
using namespace std;

int main()
{
    try  {
       throw 5;
    }
    catch (char *hello)  {
        cout << "Just a Demo of C++11" << hello;
    }
    catch (...)  {
        cout << "Stop Here\n";
    }
    return 0;
}

點選這裡檢視以上程式碼的演示。

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook

相關文章 - C++ Exception