사전적 의미로 일반 규칙에서 벗어남을 의미하며, 프로그래밍 상에서는 프로그램 실행중에 에러를 발생시킬 가능성을 가지고 있는 코드를 의미한다.
에외는 컴파일 및 오류도 없지만 사소한 부주의로 원치 않는 결과를 가져오게 하기 때문에, 이러한 예외 상황을 적절히 처리해주는 것을 예외 처리(Exception Handling)이라 한다.

try {
//예외 가능성이 있는 코드 영억
if(예외 조건) throw 예외 객체
}
catch(예외 객체){
//예외 발생에 처리할 영역
}
try-catch를 이용한 예외처리 예제 코드(+다중 예외 처리)
void main() {
int a = 0;
int b = 0;
cout << "나누어질 수 입력: ";
cin >> a;
cout << "나누는 수 입력: ";
cin >> b;
try {
if (a < 0) throw "나누어질 수가 음수";
if (b == 0) throw b;
cout << "나누기 결과: " << a / b << endl;
}
catch(int exp) {
cout << "나누는 수가 0입니다." << endl;
}
catch (const char* exp) {
cout << exp << endl;
}
}
예제 코드를 살펴보면 알 수 있듯이, 예외처리는 다중처리가 가능하다.
함수 안에서 예외가 발생해도 try...catch를 이용해서 예외 처리가 가능하다
// 함수 안에서의 예외 처리
void Divide(int x, int y) {
if (y == 0) throw y;
cout << "나누기 결과: " << x / y << endl;
}
void main() {
int a = 0;
int b = 0;
cout << "나누어질 수 입력: ";
cin >> a;
cout << "나누는 수 입력: ";
cin >> b;
try {
Divide(a, b);
}
catch (int exp) {
cout << "나누는 수: " << exp << endl;
}
}