C++에서 예외 발생

Muhammad Adil 2023년12월11일
  1. C++에서 예외 발생
  2. C++에서 예외를 사용하는 목적
  3. C++ throw 예외 사용
C++에서 예외 발생

C++ throw 예외는 오류 및 예기치 않은 이벤트를 처리하는 데 사용할 수 있는 C++의 강력한 기능입니다. 주로 프로그램의 실행을 종료하거나 프로그램의 다른 부분으로 제어를 이전하는 데 사용됩니다.

C++에서 예외 발생

C++ 예외는 잘못된 인수, 0으로 나누기 등과 같은 예외적인 상황에 의해 생성됩니다. 컴파일러는 컴파일 타임에 감지한 모든 오류에 대해 예외를 생성할 수 있습니다.

그러나 프로그래머는 코드에서 throw 키워드를 사용하여 예외를 만들 수도 있습니다.

throw 외에도 catchtry 키워드가 있습니다.

  1. Catch - 코드는 문제를 해결해야 하는 코드의 지점에서 예외 처리기를 사용하여 예외를 포착합니다. catch 키워드는 예외가 포착되었음을 나타냅니다.
  2. try - try 블록은 특정 예외가 트리거될 코드 섹션을 나타냅니다. 하나 이상의 catch 블록이 뒤에 옵니다.

메서드는 블록이 예외를 발생시킨다고 가정하고 trycatch 키워드를 결합하여 예외를 캡처합니다. try/catch 블록은 오류를 발생시킬 수 있는 코드를 캡슐화합니다.

C++에서 예외를 사용하는 목적

예외는 C++에서 오류를 처리하는 방법입니다. 코드를 보다 효율적이고 유지 관리 가능하며 견고하게 만드는 데 사용됩니다.

예외를 통해 프로그래머는 단순히 오류 코드나 상태 코드를 반환하는 것보다 더 체계적으로 오류를 처리할 수 있습니다. 예외 메커니즘은 유연하게 설계되었으며 프로그램 실행 중에 발생할 수 있는 오류를 처리하는 데 사용할 수 있습니다.

예외의 일반적인 용도는 다음과 같습니다.

  1. 유효하지 않은 입력 매개변수 감지
  2. 유효하지 않은 데이터 구조 감지
  3. I/O 오류 처리
  4. 메모리 할당 실패 처리 등

C++ throw 예외 사용

이 섹션에서는 C++ throw 예외 사용에 대한 가이드를 제공합니다.

  1. C++ throw 예외를 사용하는 첫 번째 단계는 클래스를 만드는 것입니다.
  2. 두 번째 단계는 클래스의 생성자를 만드는 것입니다. 이는 클래스의 변수를 초기화하는 데 사용되며 이 클래스에서 개체를 만들 때도 사용됩니다.
  3. 생성자를 호출한 다음 메서드를 호출하여 이 클래스의 개체를 만듭니다. 코드에 오류가 있으면 이 메서드는 예외를 발생시키고 일부 정보를 출력합니다.

위에서 언급한 단계를 사용하여 예를 살펴보겠습니다.

#include <iostream>
using namespace std;
double division(int a, int t) {
  if (t == 0) {
    throw "You are dividing with number 0 that makes impoosible to execute the operation ";
  }
  return (a / t);
}
int main() {
  int x = 4;
  int y = 0;
  double z = 4;
  try {
    z = division(x, y);
    cout << z << endl;
  } catch (const char* msg) {
    cerr << msg << endl;
  }
  return 0;
}

위에서 언급한 코드의 작동을 확인하려면 여기를 클릭하십시오.

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook

관련 문장 - C++ Exception