C++ 異常處理機制詳解:輕鬆掌握異常處理技巧

小万哥丶發表於2024-04-28

C++ 異常處理

C++ 異常處理機制允許程式在執行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。

異常處理的基本概念:

  • 異常: 程式在執行時發生的錯誤或意外情況。
  • 丟擲異常: 使用 throw 關鍵字將異常傳遞給呼叫堆疊。
  • 捕獲異常: 使用 try-catch 塊捕獲和處理異常。
  • 異常型別: 表示異常類別的識別符號。

異常處理流程:

  1. 丟擲異常: 當檢測到錯誤或意外情況時,使用 throw 關鍵字丟擲異常。
  2. 解開堆疊: 異常會沿著呼叫堆疊向上傳播,直到找到匹配的 catch 塊。
  3. 捕獲異常: catch 塊捕獲並處理丟擲的異常。
  4. 異常處理: 在 catch 塊中,您可以執行程式碼來處理異常,例如記錄錯誤資訊、恢復程式狀態或終止程式。

示例:

#include <iostream>

int main() {
  try {
    int age = 15;
    if (age < 18) {
      throw std::runtime_error("Age must be 18 or older");
    }
    std::cout << "Access granted - you are old enough." << std::endl;
  } catch (const std::runtime_error& e) {
    std::cerr << "Error: " << e.what() << std::endl;
  }

  return 0;
}

在這個例子中:

  • throw std::runtime_error("Age must be 18 or older"); 語句會丟擲一個 std::runtime_error 型別的異常,如果 age 小於 18。
  • catch (const std::runtime_error& e) 塊會捕獲 std::runtime_error 型別的異常,並將其儲存在 e 變數中。
  • std::cerr << "Error: " << e.what() << std::endl; 語句會輸出異常資訊。

優點:

  • 提高程式健壯性:異常處理使程式能夠更優雅地處理錯誤,避免程式崩潰。
  • 提高程式碼的可維護性:異常處理使程式碼更容易理解和維護,因為它將錯誤處理與正常程式碼分離。
  • 提高程式碼的可重用性:異常處理機制可以很容易地整合到現有的程式碼庫中。

缺點:

  • 可能導致效能下降:異常處理會增加一些執行時開銷,因為需要檢查和處理異常。
  • 可能使程式碼複雜化:過度的異常處理可能會使程式碼變得難以理解和維護。

總結:

C++ 異常處理是一種強大的機制,可用於提高程式的健壯性、可維護性和可重用性。但是,重要的是要謹慎使用異常處理,並避免過度使用它,因為它可能會導致效能下降和程式碼複雜化。

C++ 兩個數相加

在 C++ 中,有多種方法可以實現兩個數的相加。以下是一些常見的方法:

  1. 使用基本運算子

最簡單的方法是使用加號 (+) 運算子直接對兩個數字進行求和。

int num1 = 10;
int num2 = 20;
int sum = num1 + num2;

cout << "The sum of " << num1 << " and " << num2 << " is: " << sum << endl;
  1. 使用函式

您可以建立自己的函式來執行兩個數的相加操作。

int addNumbers(int x, int y) {
  return x + y;
}

int main() {
  int num1 = 30;
  int num2 = 40;
  int sum = addNumbers(num1, num2);

  cout << "The sum of " << num1 << " and " << num2 << " is: " << sum << endl;
  return 0;
}
  1. 使用類

您可以建立一個類來封裝求和操作。

class Calculator {
public:
  int add(int x, int y) {
    return x + y;
  }
};

int main() {
  Calculator calc;
  int num1 = 50;
  int num2 = 60;
  int sum = calc.add(num1, num2);

  cout << "The sum of " << num1 << " and " << num2 << " is: " << sum << endl;
  return 0;
}
  1. 使用 STL 函式

C++ 標準庫提供了 std::plus 函式,用於計算兩個數的和。

#include <iostream>
#include <functional>

int main() {
  int num1 = 70;
  int num2 = 80;
  int sum = std::plus<int>()(num1, num2);

  cout << "The sum of " << num1 << " and " << num2 << " is: " << sum << endl;
  return 0;
}
  1. 使用 lambda 表示式

您可以使用 lambda 表示式來建立匿名函式並執行求和操作。

#include <iostream>

int main() {
  int num1 = 90;
  int num2 = 100;
  int sum = [](int x, int y) { return x + y; }(num1, num2);

  cout << "The sum of " << num1 << " and " << num2 << " is: " << sum << endl;
  return 0;
}

這些只是在 C++ 中相加兩個數的一些方法。選擇哪種方法取決於您的具體需求和喜好。

最後

為了方便其他裝置和平臺的小夥伴觀看往期文章:

微信公眾號搜尋:Let us Coding,關注後即可獲取最新文章推送

看完如果覺得有幫助,歡迎點贊、收藏、關注