1.예외 처리 (Exception Handling)
로그램 실행 중 발생할 수 있는 오류를 효과적으로 관리하는 기법입니다.
- throw: 예외를 발생시킵니다.
- try: 예외가 발생할 수 있는 코드를 감쌉니다.
- catch: 발생한 예외를 처리합니다.
#include <iostream>
#include <stdexcept> // std::runtime_error
void mightGoWrong() {
bool errorOccurred = true; // 오류 발생 조건 (예제용)
if (errorOccurred) {
throw std::runtime_error("Something went wrong!");
}
}
int main() {
try {
mightGoWrong();
} catch (const std::runtime_error& e) {
std::cout << "Caught an exception: " << e.what() << std::endl;
}
std::cout << "Program continues after handling the exception." << std::endl;
return 0;
}
2.예외 전파
예외는 호출 스택을 따라 전파됩니다.
예를 들어, 함수 A가 함수 B를 호출하고, 함수 B에서 예외가 발생하면, 예외는 함수 A로 전파됩니다.
#include <iostream>
#include <stdexcept>
void functionC() {
throw std::runtime_error("Error in functionC");
}
void functionB() {
functionC();
}
void functionA() {
functionB();
}
int main() {
try {
functionA();
} catch (const std::runtime_error& e) {
std::cout << "Caught an exception: " << e.what() << std::endl;
}
return 0;
}
'Language > C++' 카테고리의 다른 글
[C++] 표준 라이브러리 (STL) (0) | 2024.08.04 |
---|---|
[C++] 복사 생성자와 대입 연산자 (0) | 2024.08.04 |
[C++] 연산자 오버로딩 (0) | 2024.08.04 |