C++ 例外処理では、カスタム例外とエラー コードにより、より詳細なエラー情報が提供されます。説明的なメンバー変数と関数を含む std::Exception から派生した例外クラスを定義し、 std::make_error_code() 関数を使用してエラー コードを含む例外をスローできます。例外がキャッチされた後、より効率的なエラー処理と診断のために、e.what() からエラー メッセージにアクセスし、e.code() からエラー コードにアクセスできます。
C++ では、例外処理はエラー状況を適切に処理できる強力なメカニズムであり、それによってコードの可読性と保守性が向上します。エラー コードとともにカスタム例外を定義してスローすると、より具体的で有用なエラー情報が得られるため、問題を迅速に診断して解決することができます。
カスタム例外を定義するには、std::Exception
から派生した例外クラスを作成する必要があります。このクラスには、エラーを説明するメンバー変数と関数が含まれている必要があります。 std::exception
的异常类。该类应包含描述错误的成员变量和函数。
例如,我们可以定义一个名为 MyException
的异常类:
#include <stdexcept> #include <string> class MyException : public std::exception { private: std::string message_; public: MyException(const std::string& message) : message_(message) {} const char* what() const noexcept override { return message_.c_str(); } };
在抛出异常时,我们还可以包含一个错误码,以提供有关错误的附加信息。我们可以使用 std::make_error_code()
函数来创建错误码。
以下是向 MyException
异常添加错误码的示例:
#include <system_error> throw MyException(std::make_error_code(std::errc::invalid_argument).message());
考虑以下代码示例:
try { // 可能会引发错误的代码 ... } catch (const MyException& e) { // 处理错误,并从 e.what() 访问错误消息 std::cerr << "Error: " << e.what() << std::endl; // 还可以从 e.code() 访问错误码 std::cerr << "Error code: " << e.code().value() << std::endl; }
std::errc::invalid_argument
MyException
という名前の例外クラスを定義できます。 std::make_error_code()
関数を使用してエラー コードを作成できます。 🎜🎜以下は、MyException
例外にエラー コードを追加する例です: 🎜rrreee🎜実際的な例🎜🎜次のコード例を検討してください: 🎜rrreee🎜Notes🎜std::errc::invalid_argument
などの一般的なエラー コードの使用は避けてください。代わりに、独自のエラー コードを定義して、より具体的なエラー情報を提供します。 🎜🎜 可能な場合は、デバッグを支援するために、スローされたエラーに関するコンテキスト情報を含めてください。 🎜🎜以上がC++ テクノロジにおける例外処理: カスタム例外のエラー コードを定義してスローするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。