C 中定義異常類:需要從 std::exception 衍生新類,而重寫 what 虛擬函式提供異常訊息;如例所示,MyException 類別重寫 what 傳回異常訊息。實戰案例中,divide 函數拋出 std::runtime_error 異常,main 函數會擷取並列印異常訊息。
在 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中文網其他相關文章!