Search Results for '예외처리'

1 POSTS

  1. 2006.09.09 C++ try/catch

C++ try/catch

Posted 2006. 9. 9. 10:22
보통 C++ 코딩을 잘 안하는데, 이번에 M 회사 프로젝트하면서 리눅스에서 C++로 어플리케이션을 개발하게 되었습니다. 그래도 C와는 다르게 try/catch를 통한 예외 처리를 할 수 있어서 좋았습니다. 그런데 오랫동안 자바 코딩을 해와서 그런지 다음과 같은 실수를 저질렀습니다.

<예제>
int foo()
{
    throw new Exception();
}

...
try {
    foo();
} catch (Exception& e) {
}


이상하게 catch가 안 되길래 봤더니 C++의 경우 throw Exception()을 써야했던 것이더군요.C++은 throw로 던질 수 있는 타입에 제한이 없다는 점이 문제였습니다. 자바를 비롯한 여러 언어는 최상위 예외클래스(자바의 경우 java.lang.Throwable)이 존재하는데 비해서, C++은 throw 1 같이 primitive타입까지 던질 수 있는 것이죠.

<수정>
int foo()
{
    throw Exception();
}

...
try {
    foo();
} catch (Exception& e) {
}