C++ 異常處理
C++ 異常處理機制允許程式在執行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。
異常處理的基本概念:
- 異常: 程式在執行時發生的錯誤或意外情況。
- 丟擲異常: 使用
throw
關鍵字將異常傳遞給呼叫堆疊。 - 捕獲異常: 使用
try-catch
塊捕獲和處理異常。 - 異常型別: 表示異常類別的識別符號。
異常處理流程:
- 丟擲異常: 當檢測到錯誤或意外情況時,使用
throw
關鍵字丟擲異常。 - 解開堆疊: 異常會沿著呼叫堆疊向上傳播,直到找到匹配的
catch
塊。 - 捕獲異常:
catch
塊捕獲並處理丟擲的異常。 - 異常處理: 在
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++ 中,有多種方法可以實現兩個數的相加。以下是一些常見的方法:
- 使用基本運算子
最簡單的方法是使用加號 (+
) 運算子直接對兩個數字進行求和。
int num1 = 10;
int num2 = 20;
int sum = num1 + num2;
cout << "The sum of " << num1 << " and " << num2 << " is: " << sum << endl;
- 使用函式
您可以建立自己的函式來執行兩個數的相加操作。
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;
}
- 使用類
您可以建立一個類來封裝求和操作。
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;
}
- 使用 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;
}
- 使用 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
,關注後即可獲取最新文章推送
看完如果覺得有幫助,歡迎點贊、收藏、關注