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 중국어 웹사이트의 기타 관련 기사를 참조하세요!