>백엔드 개발 >C++ >C++ 예외를 포착하고 처리하는 방법은 무엇입니까?

C++ 예외를 포착하고 처리하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-06-05 22:33:59294검색

C++ 예외는 예상치 못한 이벤트를 처리하기 위한 메커니즘입니다. 예외는 try 블록을 통해 포착되고 catch 블록을 사용하여 처리됩니다. 먼저, throw 문을 사용하여 예외를 발생시킵니다. 예외 유형은 표준 라이브러리 예외 클래스 또는 사용자 정의 예외 클래스일 수 있습니다. 실제 사례에서 나누기가 0이면 나누기 함수는 Runtime_error를 발생시키고 예외는 기본 함수의 catch 블록을 통해 포착되어 처리됩니다.

C++ 예외를 포착하고 처리하는 방법은 무엇입니까?

C++ 예외를 포착하고 처리하는 방법

C++ 예외는 예상치 못한 이벤트를 처리하기 위한 메커니즘입니다. 이를 통해 프로그램은 충돌을 일으키지 않고 오류를 정상적으로 처리할 수 있습니다.

예외 포착

예외를 포착하려면 다음 구문을 사용하세요.

try {
  // 容易抛出异常的代码
} catch (exception& e) {
  // 异常处理代码
}

try 블록에는 예외를 발생시킬 수 있는 코드가 포함되어 있습니다. 예외가 발생하면 해당 catch 블록으로 제어가 전달됩니다. catch 블록 매개변수는 특정 예외 유형을 처리하는 데 사용되는 참조를 지정합니다. try 块包含可能抛出异常的代码。如果抛出异常,控制权将转移到相应的 catch 块。catch 块参数指定用于处理特定异常类型的引用。

抛出异常

可以通过使用 throw 语句来抛出异常:

throw exception();

exception 可以是标准库异常类(例如 runtime_error)或自定义异常类。

实战案例

考虑以下代码示例:

#include <exception>

int divide(int a, int b) {
  if (b == 0) {
    throw std::runtime_error("除数不能为零");
  }
  return a / b;
}

int main() {
  try {
    int result = divide(10, 0);
    std::cout << result << std::endl;
  } catch (const std::runtime_error& e) {
    std::cout << "错误:" << e.what() << std::endl;
  }
}

main 函数中,我们调用 divide 函数,并尝试捕获可能抛出的任何异常。如果除数为零,divide 函数会抛出一个 runtime_error

예외 발생🎜🎜예외는 throw 문을 사용하여 발생시킬 수 있습니다. 🎜rrreee🎜Exception은 표준 라이브러리 예외 클래스일 수 있습니다(예: runtime_error 코드>) 또는 사용자 정의 예외 클래스. 🎜🎜실제 예🎜🎜다음 코드 예를 고려하세요. 🎜rrreee🎜 main 함수에서 divide 함수를 호출하고 발생할 수 있는 모든 예외를 포착하려고 합니다. 구분선이 0이면 divide 함수는 runtime_error를 발생시키고 오류 메시지를 표시합니다. 🎜

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.