Nagie's DevStory

[CPP] 42. 예외 처리 (Exception handling) 본문

Programming/C++

[CPP] 42. 예외 처리 (Exception handling)

Nagie 2023. 10. 23. 23:32
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