예외처리와 관련된 또 다른 특성들
Programming/C++ 2012. 10. 30. 16:44 |new 연산자에 의해서 발생하는 예외
- new 연산에 의한 메모리 공간의 할당이 실패하면 bad_alloc이라는 예외가 발생한다.
bad_alloc은 헤더파일 <new> 에 선언된 예외 클래스로써 메모리 공간의 할당이 실패했음을 알리는 의도로 정의되었다.
위 예제에서 보이듯이 프로그래머가 정의하지 않아도 발생하는 예외도 있다.
모든 예외를 처리하는 catch 블록
마지막 catch 블록에 덧붙여지는 경우가 많은데, 대신 catch의 매개변수 선언에서 보이듯이, 발생한 예외와 관련해서 그 어떠한 정보도 전달받을 수 없으며, 전달된 예외의 종류도 구분이 불가능하다.
예외 던지기
- catch 블록에 전달된 예외는 다시 던져질 수 있다.
그리고 이로 인해서 하나의 예외가 둘 이상의 catch블록에 의해서 처리되게 할 수 잇다.
예외처리는 가급적 간결한 구조를 띠는게 좋다. 따라서 정말로 필요한 상황이 아니라면, 굳이 예외를 다시 던지기 위해서 노력할 필요는 없다.
'Programming > C++' 카테고리의 다른 글
dynamic_cast : Polymorphic 클래스 기반의 형 변환 (0) | 2012.10.31 |
---|---|
C++ 에서의 형 변환 연산 (0) | 2012.10.31 |
예외상황을 표현하는 예외클래스의 설계 (0) | 2012.10.24 |
하나의 try 블록과 다수의 catch 블록 (0) | 2012.10.24 |
Stack Unwinding(스택 풀기) (0) | 2012.10.18 |