반응형
C++에서는 예외 처리(Exception)를 제공한다. 예외처리는 일반적이지 않은 상황이 발생하였을때 예외처리 신호를 보내어
현재 실행중이던 코드를 정지하고 지정해준 코드를 실행한다. 예를들어 0으로 나누는 경우 등이 있을 수 있다. 이외에도 다른
복잡한 예외 상황이 있을 수 있다.
예외 처리는 간단하다. try문에 실행코드를 넣고 예외상황에 throw문을 던지면 try문이 종료되면서 catch가 수행된다.
try{
//실행코드
throw type;
//실행코드
}catch(type 변수명) {
//catch시 실행될 코드
}
예를들어 0으로 나누는 경우 예외처리를 보자.
int main() { try { int num; cin>>num; if(num == 0) throw num; } catch(int eNum) { cout<<"divided Zero"<<endl; } return 0; }
위와 같이 int같은 변수를 사용할 수도 있지만 클래스도 사용할 수 있다.
class DividedZero { public: DividedZero(){} void printErrorTrace(){cout<<"divided zero"<<endl;} private: }; int main() { try { int num; cin>>num; if(num == 0) throw DividedZero(); //생성자를 던져준다. 인자가 있는 경우 Divided(인자) } catch(DividedZero e) { e.printErrorTrace(); } return 0; }
위와같이 예외상황에 클래스를 던져주는 것이 유지보수면에서 좋다.
반응형
'Language, IDE > C, C++' 카테고리의 다른 글
[C++] string to int, int to string (0) | 2013.07.07 |
---|---|
[C++ STL] 벡터(vector) (1) | 2013.07.07 |
[C++] 템플릿(template) (0) | 2013.07.06 |
[C++] 상속 (inheritance) (0) | 2013.07.04 |
[C++] 파일 입출력 (0) | 2013.07.03 |