> 백엔드 개발 > C++ > 본문

C++ 함수 예외 처리에서 예외 클래스를 정의하는 방법은 무엇입니까?

WBOY
풀어 주다: 2024-04-15 21:45:01
원래의
1054명이 탐색했습니다.

C++에 정의된 예외 클래스: 새 클래스는 std::Exception에서 파생되어야 하며 예제에 표시된 대로 예외 메시지를 제공하기 위해 가상 함수를 재정의해야 하며, MyException 클래스는 예외 메시지를 반환할 대상을 재정의합니다. 실제 경우 나누기 함수는 std::runtime_error 예외를 발생시키고, 주 함수는 예외 메시지를 캡처하여 인쇄합니다.

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

C++ 함수 예외 처리의 예외 클래스 정의

C++에서 예외 클래스는 함수 예외를 처리하는 데 사용됩니다. 예외 클래스를 정의하려면 std::Exception 클래스에서 새 클래스를 파생시키고 what 가상 함수를 재정의하여 예외 메시지를 제공합니다. 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

다음은 예외 클래스를 정의하는 예입니다. 🎜rrreee🎜이 예에서 MyException 클래스는 std::Exception 클래스에서 파생되고 를 재정의합니다. > 예외 메시지를 반환하는 함수는 무엇입니까? 메시지는 생성자에서 설정할 수 있습니다. 🎜🎜실제 사례🎜🎜다음은 예외 클래스를 사용하는 함수의 예입니다. 🎜rrreee🎜위 예에서 <code>divide 함수는 구분선이 다음과 같은 경우 std::runtime_error예외입니다. <code>main 함수는 try-catch 블록을 사용하여 예외를 포착하고 예외 메시지를 인쇄합니다. 🎜

위 내용은 C++ 함수 예외 처리에서 예외 클래스를 정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!