首頁 > 後端開發 > C++ > C++ 函式中如何處理異常?

C++ 函式中如何處理異常?

WBOY
發布: 2024-04-23 15:24:01
原創
873 人瀏覽過

在 C 中,例外情況會透過 try-catch 語句處理:try 區塊中程式碼可能會拋出例外。 catch 區塊捕捉標準異常或自訂異常。 noexcept 關鍵字聲明函數不會拋出異常,以進行最佳化。

C++ 函数中如何处理异常?

C 函數中如何處理例外狀況?

在C 中,異常透過try-catch 語句處理,包含三個主要部分:

try {
  // 代码块,可能抛出异常
}
catch (const std::exception& e) {
  // 捕获标准异常
}
catch (const MyCustomException& e) {
  // 捕获自定义异常
}
登入後複製

實戰案例:

假設我們有一個函數divide,它計算兩個數的商,但當分母為0 時拋出例外:

int divide(int num, int denom) {
  try {
    if (denom == 0) {
      throw std::runtime_error("除数不能为 0");
    }
    return num / denom;
  }
  catch (const std::exception& e) {
    std::cout << "错误: " << e.what() << std::endl;
  }
}
登入後複製

在主函數中,我們可以呼叫divide 函數並捕獲異常:

int main() {
  try {
    int dividend = 10;
    int divisor = 0;
    int result = divide(dividend, divisor);
    std::cout << dividend << " / " << divisor << " = " << result << std::endl;
  }
  catch (const std::runtime_error& e) {
    std::cout << e.what() << std::endl;
  }
}
登入後複製

輸出:

错误: 除数不能为 0
登入後複製

注意:

  • 函數中也可以拋出自訂例外,透過建立自訂例外類別並繼承std::exception
  • 使用 noexcept 關鍵字宣告函數不會拋出例外,以進行最佳化。

以上是C++ 函式中如何處理異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板