首頁 > 後端開發 > C++ > C++ 函式異常處理中的異常類別如何定義?

C++ 函式異常處理中的異常類別如何定義?

WBOY
發布: 2024-04-15 21:45:01
原創
1129 人瀏覽過

C 中定義異常類:需要從 std::exception 衍生新類,而重寫 what 虛擬函式提供異常訊息;如例所示,MyException 類別重寫 what 傳回異常訊息。實戰案例中,divide 函數拋出 std::runtime_error 異常,main 函數會擷取並列印異常訊息。

C++ 函数异常处理中的异常类如何定义?

C 函數異常處理中的異常類別定義

在 C 中,異常類別是用來處理函數異常情況的。要定義一個異常類,需要從 std::exception 類別派生一個新類,並重寫 what 虛函數以提供異常訊息。

以下是一個定義異常類別的範例:

#include <exception>

class MyException : public std::exception {
public:
  MyException(const char* message) : std::exception(message) {}
  MyException(const std::string& message) : std::exception(message.c_str()) {}
  const char* what() const noexcept override { return message_.c_str(); }

private:
  std::string message_;
};
登入後複製

在這個範例中,MyException 類別從std::exception 類別派生,並重寫了what 函數以傳回異常訊息。訊息可以在建構函數中設定。

實戰案例

以下是使用異常類別的函數的範例:

#include <exception>
#include <iostream>

void divide(int numerator, int denominator) {
  if (denominator == 0) {
    throw std::runtime_error("Cannot divide by zero");
  }
  std::cout << "Result: " << numerator / denominator << std::endl;
}

int main() {
  try {
    divide(10, 0);  // 抛出异常
  } catch (const std::exception& e) {  // 捕获异常
    std::cerr << "Error: " << e.what() << std::endl;
  }
  return 0;
}
登入後複製

在上述範例中,divide 函數在除數為零時拋出一個std::runtime_error 例外。 main 函數使用 try-catch 區塊捕獲異常並列印異常訊息。

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

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