在C++中,異常處理是通過關鍵字try
、catch
和throw
實現的。當程序遇到錯誤時,可以使用throw
拋出一個異常,然后在適當的層次結構中使用catch
捕獲并處理異常。以下是一個簡單的示例:
#include <iostream>
#include <stdexcept>
int main() {
try {
// 一些可能拋出異常的代碼
throw std::runtime_error("An error occurred");
} catch (const std::runtime_error& e) {
// 捕獲并處理異常
std::cerr << "Caught exception: " << e.what() << std::endl;
} catch (...) {
// 捕獲所有其他類型的異常
std::cerr << "Caught an unknown exception" << std::endl;
}
return 0;
}
在這個例子中,我們使用try
塊包裹可能拋出異常的代碼。如果發生異常,我們使用throw
關鍵字拋出一個std::runtime_error
異常。然后,我們使用catch
塊捕獲并處理異常。第一個catch
塊捕獲std::runtime_error
類型的異常,第二個catch
塊捕獲所有其他類型的異常。
在Linux下編譯和運行C++程序,你可以使用g++
編譯器。例如,如果你想編譯上面的示例程序,可以使用以下命令:
g++ -o my_program my_program.cpp
然后,使用以下命令運行程序:
./my_program
如果你想在Linux下調試C++程序,可以使用gdb
調試器。例如,要使用gdb
調試上面示例程序,可以執行以下命令:
gdb my_program
然后,在gdb
提示符下,使用run
命令運行程序。如果程序拋出異常,gdb
將顯示異常發生的位置和調用堆棧。你可以使用backtrace
命令查看完整的調用堆棧。