Exception이란 프로그램이 동작하는 과정에서 발생하는 예상치 못한 오류를 의미한다. C++에서는 발생할 가능성이 높은 오류에 대해서 Exception Handling을 할 수 있다.
#include<iostream>
using namespace std;
int main(void) {
	int a = 7, b = 0;
	cout << a / b << 'n';
	system("pause");
}
실행 결과
0x009823EC에(Cpp.exe의) 처리되지 않은 예외가 있습니다. 0xC0000094: Integer division by zero.
#include<iostream>
using namespace std;
int main(void) {
	int a = 7, b = 0;
	try {
		if (b == 0) {
			throw"0으로나눌수없습니다.";
		}
		cout << a / b << 'n';
	}
	catch (const char * str) {
		cout << str << '\n';
	}
	system("pause");
}
실행 결과
0으로나눌수없습니다.
#include<iostream>
using namespace std;
template<typename T>
class Data{
private:
	T data;
public:
	Data(T data) : data(data) { }
	T getData() { return data; }
	Data<T> operator /(const Data<T>& other) {
		if (other.data == 0) {
			throw 0;
		}
		return Data(data / other.data);
	}
};
int main(void) {
	try {
		Data<int> a(7);
		Data<int> b(0);
		Data<int> result = a / b;
		cout << result.getData() << '\n';
	}
	catch (int e) {
		if (e == 0) {
			cout << "0으로나눌수없습니다.\n";
		}
	}
	system("pause");
}
실행 결과
0으로나눌수없습니다.