C++에서 범위를 벗어난 예외 발생

Aditya Raj 2023년10월12일
  1. C++에서 범위를 벗어난 예외 발생
  2. C++에서 범위를 벗어난 예외를 던지는 동안 오류가 발생했습니다.
C++에서 범위를 벗어난 예외 발생

C++에서는 try-catch 블록을 사용하여 예외를 처리할 수 있습니다. throw 문을 사용하여 명시적으로 예외를 throw할 수도 있습니다.

이 문서에서는 C++에서 범위를 벗어난 예외를 throw하는 방법에 대해 설명합니다.

C++에서 범위를 벗어난 예외 발생

C++에서 범위를 벗어난 예외를 발생시키려면 예외 개체를 만들 수 있습니다. 이를 위해 out_of_range() 생성자를 사용할 수 있습니다.

out_of_range() 생성자는 표준 C++ 라이브러리에 정의되어 있습니다. 문자열 객체를 입력 인수로 사용하고 범위를 벗어난 예외를 반환합니다.

다음 예제와 같이 throw 문을 사용하여 예외를 throw할 수 있습니다.

#include <iostream>

int main() {
  int number = 100;
  if (number > 50) {
    throw std::out_of_range("I am an exception.");
  }
  return 0;
}

출력:

terminate called after throwing an instance of 'std::out_of_range'
  what():  I am an exception.
Aborted

여기에서 먼저 숫자라는 변수를 만들었습니다. 그런 다음 숫자의 값이 50보다 큰지 확인했습니다.

그렇다면 표준 C++ 라이브러리에 정의된 범위를 벗어난 예외가 발생한 것입니다.

try-catch 블록을 사용하여 범위를 벗어난 예외를 처리할 수도 있습니다. try 블록에서 예외를 발생시킵니다.

범위를 벗어난 예외를 포착하고 catch 블록에서 예외를 처리했음을 인쇄합니다. 다음 예제에서 이를 관찰할 수 있습니다.

#include <iostream>

int main() {
  int number = 100;
  try {
    if (number > 50) {
      throw std::out_of_range("I am an exception.");
    }
  } catch (std::out_of_range) {
    std::cout << "I am here. Exception caught and handled.";
  }
  return 0;
}

출력:

I am here. Exception caught and handled.

위의 출력은 범위를 벗어난 예외를 처리한 후 프로그램이 정상적으로 종료되었음을 보여줍니다. 반면 이전 프로그램은 예외를 처리하지 않았기 때문에 중단되었습니다.

C++에서 범위를 벗어난 예외를 던지는 동안 오류가 발생했습니다.

아래와 같이 C++에서 범위를 벗어난 예외를 발생시키는 프로그램을 작성하는 것이 때때로 가능합니다.

#include <iostream>

int main() {
  int number = 100;
  try {
    if (number > 50) {
      throw std::out_of_range;
    }
  } catch (std::out_of_range) {
    std::cout << "I am here. Exception caught and handled.";
  }
  return 0;
}

위의 코드를 실행하면 프로그램은 다음 실행 추적과 함께 오류로 실행됩니다.

/tmp/EG06BKsTcd.cpp: In function 'int main()':
/tmp/EG06BKsTcd.cpp:8:36: error: expected primary-expression before ';' token
    8 |             throw std::out_of_range;
      |                                    ^

범위를 벗어난 예외 개체 대신 std::out_of_range를 throw했기 때문에 오류가 발생합니다. std::out_of_range 생성자는 범위를 벗어난 예외를 생성하는 데 사용되는 유형 정의입니다.

따라서 throw 문을 사용하여 던질 수 없습니다. C++에서 범위를 벗어난 예외를 발생시키려면 std::out_of_range() 생성자에 문자열을 입력 인수로 전달하여 범위를 벗어난 예외를 생성해야 합니다. 그래야만 C++에서 범위를 벗어난 예외를 성공적으로 throw할 수 있습니다.

작가: Aditya Raj
Aditya Raj avatar Aditya Raj avatar

Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.

GitHub

관련 문장 - C++ Exception