C++
try-throw-catch
GunwooYun
2024. 1. 20. 19:09
C에서는 보통 예외처리라 하면 조건문? 아니면 assert? 정도 일듯한데,
객체지향의 C++은 try~catch 구문이 있다.
아래 코드는 chatgpt가 생성해준 코드인데, 심플해서 이해하기 좀 쉽네.
#include<iostream>
#include<stdexcept>
using namespace std;
double divide(int numerator, int denominator)
{
if(denominator == 0)
{
throw invalid_argument("Division by zero is not allowed");
}
return static_cast<double>(numerator / denominator);
}
int main()
{
try{
int numerator, denominator;
// Get input from the user
cout << "Enter numerator: ";
cin >> numerator;
cout << "Enter denominator: ";
cin >> denominator;
double ret = divide(numerator, denominator);
cout << "result: " << ret << endl;
} catch(const exception& e){
cerr << "Exception caught: " << e.what() << endl;
}
return 0;
}