Nagie's DevStory
[CPP] 42. 예외 처리 (Exception handling) 본문
728x90
예외 처리는 프로그램의 안정성을 높여주며 예외 상황을 처리하는 방법을 정의하는 데 도움이 된다.
C++에서 예외 처리를 구현하는 주요 키워드는 다음과 같다.
키워드 | 설명 |
try | 예외가 발생할 수 있는 코드 블록을 나타낸다. |
catch | 예외를 처리하는 코드 블록을 나타낸다. 'catch'블록은 예외가 발생하면 실행된다. |
throw | 예외를 발생시키는 데 사용되며 'throw' 키워드 뒤에 예외 객체를 지정한다. |
std::exception (예외 클래스) |
예외는 예외 클래스의 인스턴스로 나타내며, 예외 클래스는 'std::exception'클래스를 상속받아 사용자 정의 예외 클래스를 만들 수 있으며 사용자 정의 예외 클래스는 예외 정보를 저장하고 전달하는 데 사용된다. |
아래는 위의 키워드를 사용해 예외 처리를 하는 예시이다.
#include <iostream>
int divide(int a, int b) {
if (b == 0) {
throw std::runtime_error("나누기 0 예외"); // 예외를 발생시킴
}
return a / b;
}
int main() {
try {
int result = divide(10, 0); // 예외가 발생할 수 있는 코드
std::cout << "결과: " << result << std::endl;
} catch (const std::exception& e) {
std::cerr << "예외가 발생했습니다: " << e.what() << std::endl;
}
}
위의 코드는 devide()를 통해 0으로 나누려 시도하면 'std::runtime_error' 예외가 발생한다.
이 예외는 'try' 블록 내에서 'catch' 블록으로 전달 되며 'catch' 블록에서 예외 정보를 출력하는 형태를 띄고 있다.
728x90
Comments