본문 바로가기

Language, IDE/C, C++

[C++] 예외 처리 (Exception)

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++] 예외 처리 (Exception)  (0) 2013.07.06
[C++] 템플릿(template)  (0) 2013.07.06
[C++] 상속 (inheritance)  (0) 2013.07.04
[C++] 파일 입출력  (0) 2013.07.03