EECS/C/C++/STL

C++예외처리

치우삭풍 2012. 3. 7. 01:42

int DivZero(int a, int b, int c) {
    if (a <= 0 || b <= 0 || c <= 0) throw "All parameters should be > 0";
    return a + b * c + b / c;
}

int main() {
    try (cout << DivZero(2,0,4) << endl; }
    catch (char * e) {
        cout << "Error " << e << endl;
    }
}

참고로, c++의 new연산자는 bad_alloc 형의 예외를 발생시킨다.

따라서, catch( bad_alloc e) {}를 해주면 bad_alloc 형의 예외를 잡을 수 있다.