C++의 모든 예외 포착

Muhammad Adil 2023년12월11일
  1. C++의 예외 처리
  2. C++의 모든 예외 포착
  3. C++에서 모든 예외를 포착하는 단계
C++의 모든 예외 포착

C++는 정적으로 유형이 지정되고 자유 형식이며 다중 패러다임이며 컴파일된 언어인 강력한 범용 프로그래밍 언어입니다. C++는 Windows OS를 포함하여 많은 프로그램과 응용 프로그램을 만들었습니다.

C++ 11에서는 새로운 현재 예외 메커니즘을 사용하여 모든 예외를 포착합니다. 이 기사에서는 모든 예외가 C++에서 어떻게 처리되는지 자세히 설명합니다.

예외 처리의 도입부터 시작하겠습니다.

C++의 예외 처리

예외 처리는 오류 및 예외를 처리하기 위해 프로그래밍 언어에서 사용되는 메커니즘입니다. C++는 특정 유형의 예외를 잡거나 무시하고 정리를 위해 소멸자를 사용하는 등 다양한 예외 처리 기능을 제공합니다.

프로그래머가 버퍼 오버런 및 메모리 누수와 같은 일반적인 오류를 피하는 데 도움이 됩니다. 예외 처리는 또한 프로그래머가 별도로 테스트할 수 있고 프로그래머가 원할 경우 간단히 비활성화할 수 있는 예외 처리 코드로 캡슐화하여 오류가 발생하기 쉬운 코드를 쉽게 처리할 수 있도록 합니다.

예외 처리를 통해 프로그래머는 예기치 않은 상황을 충돌 없이 처리하고 발생할 때 복구할 수 있는 강력한 프로그램을 작성할 수 있습니다.

예외 처리는 동기식 또는 비동기식일 수 있습니다.

프로그램 실행을 중단하지 않고 코드의 문제를 처리할 수 있는 경우 동기 예외가 생성됩니다. 동기 예외는 확인된 예외라고도 합니다.

반면에 프로그램 실행을 중단하지 않고는 처리할 수 없는 코드에 문제가 있는 경우 비동기 예외가 발생합니다. 비동기 예외는 확인되지 않은 예외라고도 합니다.

C++의 모든 예외 포착

새로운 현재 예외 메커니즘은 C++에서 모든 예외를 포착하는 방법입니다. C++11에 도입되었습니다. try-catch 블록을 사용하여 일부 예외만 잡는 구식 기술의 대안입니다.

이 새로운 방법에는 이전 방법보다 선호되는 몇 가지 기능이 있습니다.

예전 방식은 throw 키워드를 사용하여 예외를 발생시키고 try-catch 블록으로 예외를 포착하는 것이었습니다. 새로운 방법은 throw 키워드 다음에 포착하려는 예외 유형 목록을 사용하는 것입니다.

예외 유형을 나타내는 객체를 저장하고 전달할 수 있는 방법이 있는 한 std::exception뿐만 아니라 모든 예외 유형과 함께 사용할 수 있습니다.

게다가, 새로운 시스템을 사용하면 다양한 유형의 예외를 포착할 수 있는 함수를 원하는 만큼 지정할 수 있습니다. 기존 시스템과 달리 각 예외 유형에 대해 별도의 기능을 사용할 필요가 없습니다.

C++에서 모든 예외를 포착하는 단계

C++에서 모든 예외를 포착하려면 다음 단계가 필요합니다.

  • 예외 처리기로 사용할 클래스를 선언합니다.
  • 이 핸들러가 잡아야 하는 예외를 정의하십시오.
  • 주 함수가 예외를 포착하는 데 사용되는 클래스의 인스턴스를 사용하여 새로운 C++11 예외 메커니즘을 호출하도록 합니다.
  • 예외를 던질 수 있는 코드를 작성하고 현재 예외 메커니즘이 예외를 포착하는지 확인하십시오.

새로운 C++11 예외 메커니즘을 사용하면 프로그래머가 각각에 대해 try-catch 블록을 수동으로 작성할 필요 없이 코드에서 가능한 모든 런타임 오류를 쉽게 포착할 수 있습니다.

try-catch 문의 예를 살펴보겠습니다.

#include <iostream>
using namespace std;

int main() {
  try {
    throw 5;
  } catch (char *hello) {
    cout << "Just a Demo of C++11" << hello;
  } catch (...) {
    cout << "Stop Here\n";
  }
  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