抓住
catch
關鍵字引入了一個異常處理程式,即當丟擲相容型別的異常時將向其傳輸控制的塊。catch
關鍵字之後是帶括號的異常宣告,其形式類似於函式引數宣告:引數名稱可以省略,省略號 ...
是允許的,它匹配任何型別。異常處理程式僅在其宣告與異常型別相容時才處理異常。有關詳細資訊,請參閱捕獲異常 。
try {
std::vector<int> v(N);
// do something
} catch (const std::bad_alloc&) {
std::cout << "failed to allocate memory for vector!" << std::endl;
} catch (const std::runtime_error& e) {
std::cout << "runtime error: " << e.what() << std::endl;
} catch (...) {
std::cout << "unexpected exception!" << std::endl;
throw;
}